SQL自由文本和喜欢
-
06-07-2019 - |
题
如果我使用'%fish%',则返回以下内容
AQUARIAN GOLDFISH FLAKES
但如果我使用Contains([Description],'" fish *"'),那我可以做些什么吗?
基本上我想在任何地方返回任何带有单词fish的东西。
解决方案
怎么样?
CONTAINS([Description], '"fish"')
或
FREETEXT([Description], 'fish')
这会给你什么吗?
SQL Server全文索引不支持搜索带有前导通配符的表达式,例如你不能去 CONTAINS([Description],'" * fish *"')
或类似的东西: - (
您还可以做的是为全文搜索定义自己的同义词,例如:定义“金鱼”成为“鱼”的同义词 - 你应该只能搜索“鱼”。并且还找到“金鱼”。
SELECT (list of fields) FROM YourTable
WHERE CONTAINS([Description], 'FORMSOF(THESAURUS, fish)')
查看了解SQL Server中的全文索引 - 关于修改全文同义词库的文章中有一个很好的部分。
马克
不隶属于 StackOverflow