在项目中使用了SQL的全文搜索用来搜索中文的企业名称,但效果一直不理想,比如要搜索“北京三一重工有限公司”,使用“三一”就搜索不到。因是第一次使用SQL的全文搜索,起初以为是SQL的中文分词功能弱的问题,就没有细究。
昨天又重新研究了一下,为了安全起见,我把服务器上的数据导入到开发的机器上做的测试,居然发现在测试的机器上表现相当好。看来不是SQL功能上的问题,是设置上的问题。在网上搜了一下,参考了“一起特殊中文全文检索问题的解决” 这篇文章终于发现了原因。原来是缺少noise.chs文件,补上之后工作正常。
也许这是一个常见的问题,但我想补充一下的就是,大部文章上反应的是少这个文件之后任何查询都会返回“查询子句只包含被忽略的词”,但我遇到的是不是任何查询都返回“查询子句只包含被忽略的词”,而只是查询功能效果不理想,这样我一直没有想到是noise.chs的问题。