SQL自由文本和喜欢

时间:2009-10-23 14:18:26

标签: sql sql-server sql-server-2005 full-text-indexing

如果我使用'%fish%',则返回以下内容

AQUARIAN GOLDFISH FLAKES

但如果我使用Contains([Description],'“fish *”'),那么我能做些什么呢?

基本上我想在任何地方返回任何带有单词fish的东西。

1 个答案:

答案 0 :(得分: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 - 在修改全文同义词库的文章中有一个很好的部分。

马克