SQL Server
Microsoft 关系数据库管理和分析系统的一个系列,用于实现电子商务、业务线和数据仓库解决方案。
138 个问题
如图所示,请问为什么搜“山”只能查出第一行,而查不出第二行。搜“半山”能查出第二行却查不出第一行?
我这边测试了一下也是一样的问题, 如下:
如果表格数据换成英文字母的话就能正常检索:
考虑到检索单独一个‘悦’的时候是正常的,再结合你发的分词结果,我猜测应该是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'半山');
如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。
试试这样:
where CONTAINS(A,'"半山"')
--或者
where CONTAINS(A,'"*半山*"')
如果答案是正确的解决方案,请点击“接受答案”并投赞成票。如果您对此答案有其他疑问,请点击“评论”。