我使用Contains来检测在某些列中是否包含某些单词,..以及'和' &安培; '或'结果是假的
SELECT * FROM Products WHERE CONTAINS(Keywords, 'AND')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'And')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'and')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'Or')
SELECT * FROM Products WHERE CONTAINS(Keywords, 'or')
如何检测这些单词:" AND","和","和"," OR",&# 34;或" 包含在产品列中?
答案 0 :(得分:3)
问题很可能是停用词列表。创建索引时,默认行为是使用系统提供的停用词列表:
STOPLIST [=] {OFF |系统| stoplist_name}
将全文停止列表与索引相关联。指数不是 填充了作为指定停止列表一部分的任何令牌。 如果 未指定STOPLIST,SQL Server将系统全文关联 带索引的停止列表。
单词“AND”和“OR”通常会出现在这样的列表中。
您可以在创建索引时使用STOPLIST = OFF
将其关闭。或者,通过创建自己的停用词列表(请参阅here)。