SQL使用CONTAINS()不适用于AND&要么

时间:2014-11-24 16:07:02

标签: sql tsql

我使用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;或" 包含在产品列中?

1 个答案:

答案 0 :(得分:3)

问题很可能是停用词列表。创建索引时,默认行为是使用系统提供的停用词列表:

  

STOPLIST [=] {OFF |系统| stoplist_name}

     

将全文停止列表与索引相关联。指数不是   填充了作为指定停止列表一部分的任何令牌。 如果   未指定STOPLIST,SQL Server将系统全文关联   带索引的停止列表。

单词“AND”和“OR”通常会出现在这样的列表中。

您可以在创建索引时使用STOPLIST = OFF将其关闭。或者,通过创建自己的停用词列表(请参阅here)。