gpt4 book ai didi

sql - 为什么 SQL Server 全文搜索不匹配数字?

转载 作者:行者123 更新时间:2023-12-04 14:08:28 26 4
gpt4 key购买 nike

我正在使用 SQL Server 2014 Express,并在表上设置了全文索引。

全文索引仅索引单个列,在此示例中名为 foo .

该表中有 3 行。 3 行中的值,对于全文索引列,就像这样......

test 1
test 2
test 3 test 1

上面的每一行都是表中的一个新行,该文本实际上就是全文索引列中的内容。所以,使用 SQL Server 的 CONTAINS函数,如果我执行以下查询,我会按预期将所有行作为匹配项返回。
SELECT * FROM example WHERE CONTAINS(foo, 'test')

但是,如果我运行以下查询,我也会将所有行作为匹配项返回,这是我不期望的。在以下查询中,我只希望有一行作为匹配项。
SELECT * FROM example WHERE CONTAINS(foo, '"test 3"')

最后,简单地搜索“3”不会返回匹配的行,这也是我没想到的。我希望以下查询中有一个匹配的行,但没有。
SELECT * FROM example WHERE CONTAINS(foo, '3')

我已经阅读了 CONTAINS 上的 MSDN 页面和全文索引,但我无法弄清楚这种行为。我一定做错了什么。

有人能向我解释发生了什么以及如何执行我所描述的搜索吗?

最佳答案

虽然这可能不是答案,但它解决了我最初的问题。我的全文索引正在使用系统停止列表。无论出于何种原因,某些单独的数字,例如“测试 1”中的“1”,被跳过或停止列表所做的任何事情。

以下问题和答案,在 SO 上,建议完全禁用停止列表。我这样做了,现在我的全文搜索符合我的预期,但以更大的全文索引为代价,看起来像。

Full text search does not work if stop word is included even though stop word list is empty

关于sql - 为什么 SQL Server 全文搜索不匹配数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24739687/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com