2

我正在使用 SQL Server 2012 和 SQL 管理器。停止列表中的单词总是被忽略吗?

如果我的停止列表是空白的,我会得到:

select Count(*) from freetexttable(Document,[ContentsPlainText],'i') --> 1268
select Count(*) from freetexttable(Document,[ContentsPlainText],'a') --> 186
select Count(*) from freetexttable(Document,[ContentsPlainText],'av') --> 0

如果我的停止列表包含“a”、“i”、“av”,我会得到:

select Count(*) from freetexttable(Document,[ContentsPlainText],'i') --> 0
select Count(*) from freetexttable(Document,[ContentsPlainText],'a') --> 186
select Count(*) from freetexttable(Document,[ContentsPlainText],'av') --> 0

这给出了:

SELECT count(*) FROM document WHERE ContentsPlainText LIKE '%i%' --> 1340
SELECT count(*) FROM document WHERE ContentsPlainText LIKE '%a%' --> 1338
SELECT count(*) FROM document WHERE ContentsPlainText LIKE '%av%' --> 1295

我希望第一个自由文本搜索为所有人返回“某物”,第二个为所有人返回“无”。相反,'i' 的行为与我预期的一样,而另一个则恒定为 0 或 186。无法使其正常工作。

编辑 1:如果我尝试使用 'er' 进行相同操作,我可以将点击次数从 1100 减少到 1000 左右。这是第三种情况。

编辑 2:我现在开始工作了。通过重新填充表格(我认为就是这样做的),如果它们在停止列表中,我现在可以减少所有搜索的命中。但是,在某些搜索词上,我只减少了点击量,但结果仍然比 0 多。也许在停止列表生效之前,搜索会结合词等

4

0 回答 0