2009-10-23 68 views
1

如果我使用像“%鱼油%”返回SQL自由文本,喜欢

水瓶金鱼FLAKES

以下,但如果我使用包含([说明]“‘鱼*’”),它是不是有我能做的事情?

基本上我想返回任何在任何地方都有鱼的词。

回答

4

什么

CONTAINS([Description], '"fish"') 

FREETEXT([Description], 'fish') 

这是否给你什么?

SQL Server全文索引不支持搜索带有前导通配符的表达式,例如,你不能去CONTAINS([Description], '"*fish*"')或类似的东西:-(

你也可以做的是定义你自己的同义词全文搜索,例如定义“金鱼”是“鱼”的同义词 - 比你应该能够搜索只是“鱼”,也找到了“金鱼”

SELECT (list of fields) FROM YourTable 
WHERE CONTAINS([Description], 'FORMSOF(THESAURUS, fish)') 

退房Understanding Full-Text Indexing in SQL Server - 。有一个很好的部分有点消沉文章在修改全文词库

马克