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