全文搜索为什么结果是这样的

博雄 胡 380 信誉分
2024-08-22T07:57:39.77+00:00

如图所示,请问为什么搜“山”只能查出第一行,而查不出第二行。搜“半山”能查出第二行却查不出第一行?1

SQL Server
SQL Server
Microsoft 关系数据库管理和分析系统的一个系列,用于实现电子商务、业务线和数据仓库解决方案。
138 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. LiHongMSFT-4306 26,791 信誉分
    2024-08-23T08:43:26.09+00:00

    我这边测试了一下也是一样的问题, 如下:

    User's image如果表格数据换成英文字母的话就能正常检索:

    User's image

    考虑到检索单独一个‘悦’的时候是正常的,再结合你发的分词结果,我猜测应该是SQL Server对于中文的分词不太合理。

    您可以去官方feedback网址上反馈这个问题:https://feedback.azure.com/d365community/forum/04fe6ee0-3b25-ec11-b6e6-000d3a4f0da0

    或者我建议您向 Microsoft Support Team开case,会有专业工程师帮助解决问题。

    在得到完善之前,你可以先这样查询来应对:

    select * from 测试表 WHERE CONTAINS(A,N'半') OR CONTAINS(A,N'山') OR CONTAINS(A,N'半山');
    

    如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。

    1 个人认为此答案很有帮助。
    0 个注释 无注释

1 个其他答案

排序依据: 非常有帮助
  1. LiHongMSFT-4306 26,791 信誉分
    2024-08-22T08:37:54.9033333+00:00

    试试这样:

    where CONTAINS(A,'"半山"')
    --或者
    where CONTAINS(A,'"*半山*"')
    

    如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。

    1 个人认为此答案很有帮助。

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。