回答

收藏

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

技术问答 技术问答 262 人阅读 | 0 人回复 | 2023-09-14

我正在使用SQL Server 2014 Express,并在表上设置全文索引。
" a7 y) y, |5 n( L: @全文索引子中,全文索引只被索引列为单列foo。
% K! C: F* |/ c表中有三行。全文索引列出的三行值如下所示…3 ~7 p1 n0 K! N+ _; \) m% K
test 1test 2test 3 test 1以上每一行都是表中的新行,本文实际上是全文索引列中的内容。因此,使用SQL
; V% g# C' O/ \; NServer的CONTAINS功能,如果执行以下查询,可按预期返回为匹配项。
! [' g! I$ a- b9 L' ^% u- p4 ISELECT * FROM example WHERE CONTAINS(foo,'test')但是,如果我运行以下查询,我会把所有的行都作为匹配项返回,这是我不想要的。在以下查询中,我只想把一行作为匹配项。. B& K  R3 c% a, I$ ?3 J$ v
SELECT * FROM example WHERE CONTAINS(foo,'"test 3"')最后,我没有想到只搜索 3不会返回任何匹配的行。我希望从下面的查询中找到一个匹配的行,但什么没有。
8 u7 ^. I; F5 Y; J6 A# @; pSELECT * FROM example WHERE CONTAINS(foo,'3')我已经读过了MSDN页面CONTAINS还有全文索引,但我找不到这种现象。我一定做错了什么。
0 ]7 g0 a- j7 x1 v+ y! T5 V: O% P有人能向我解释发生了什么以及如何执行我描述的搜索吗?9 x- u" _; ^. p/ t
                                                               
. t0 g+ a1 Z0 g1 u2 k* G) \    解决方案:                                                                ; m3 T2 O* E2 Z+ _! y7 c
                                                                尽管这可能不是 的    答案,它解决了我最初的问题。我的全文索引正在使用系统停止列表。出于某种原因,一些单独的数字(如测试1中的
1 H0 c# S/ n3 S! {* M' w1)任何操作都会跳过或停止列表。
; F; Z& ^1 T) t; Q以下关于SO建议禁止列表中的问题和答案。我这样做了。现在我的全文搜索符合我的期望,但它看起来像一个更大的全文索引。0 l& l6 C. z, H, k+ p& b- M* s. P- I1 ~
即使停用词列表是空的,如果包含停用词,全文搜索也不起作用
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则