包含对单词“之后”的搜索失败

时间:2019-09-17 00:53:46

标签: sql-server tsql

基本运行以下内容:

SELECT * 
FROM document 
WHERE contains(cachedText, 'after') 

返回0条记录,与其中带有单词after的任何搜索词相同。

搜索:

SELECT * 
FROM document 
WHERE cachedText like '%after%'

返回我的数据集中约20万条记录。只是想知道是否有任何原因吗?

1 个答案:

答案 0 :(得分:1)

第一个查询将单词“ after”与其他文本中的“ 区别词”匹配。 (如果停用词列表中包含“之后”,则将其完全忽略。)您可以在Full-Text Search上了解详细信息。

第二个查询匹配“ afternoon”,“ crafters”,“ dafter”,...,即任何包含“ after”的字符串,无论其是否有断字。

检查第二个查询返回的匹配项,您可能会发现较长的单词中嵌入了“之后”。