4
我對全文CONTAINS運算符有些問題。這裏有一個快速的腳本來展示我在做什麼。請注意,WAITFOR行只是給全文索引一分鐘完成填充。我的全文搜索查詢有什麼問題?
create table test1 (id int constraint pk primary key, string nvarchar(100) not null);
insert into test1 values (1, 'dog')
insert into test1 values (2, 'dogbreed')
insert into test1 values (3, 'dogbreedinfo')
insert into test1 values (4, 'dogs')
insert into test1 values (5, 'breeds')
insert into test1 values (6, 'breed')
insert into test1 values (7, 'breeddogs')
go
create fulltext catalog cat1
create fulltext index on test1 (string) key index pk on cat1
waitfor delay '00:00:03'
go
select * from test1 where contains (string, '"*dog*"')
go
drop table test1
drop fulltext catalog cat1
返回的結果集爲:
1 dog
2 dogbreed
3 dogbreedinfo
4 dogs
爲什麼記錄#7 'breeddogs' 不回來了?
編輯
有另一種方式,我應該尋找那些包含在其他字符串的字符串?一種比LIKE'%searchword%'更快的方式?
那麼如何匹配在目標字符串中包含搜索字符串的字符串呢? – 2010-03-06 11:52:19
那是一種限制。如果我有一張有大量文字的桌子,我該如何搜索埋藏的琴絃? – 2010-03-06 11:59:19
您應該使用'標準'方法(LIKE,CHARINDEX等)或切換到可以配置爲支持所需功能的Lucene。 – AlexS 2010-03-06 12:11:10