首页 > 解决方案 > 包含对单词“after”的搜索失败

问题描述

基本上运行以下内容:

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

返回 0 条记录,与任何包含该单词after的搜索词相同。

正在寻找:

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

在我的数据集中返回大约 200k 条记录。只是想知道这是否有任何原因?

标签: sql-servertsql

解决方案


第一个查询匹配单词“after”,即其他文本中的不同单词。(如果“after”在停用词列表中,则它会被完全忽略。)您可以在全文搜索中阅读详细信息。

第二个查询匹配“afternoon”、“crafters”、“dafter”、...,即任何包含“after”的字符串,无论分词如何。

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


推荐阅读