heshao2005 发表于 2016-12-16 09:56:44

在Solr中使用IKAnalyzer遇到的一个问题

  最近在项目中使用Solr做全文检索功能,使用了IKAnalyzer中文分词器(在此感谢:http://linliangyi2007.iyunv.com/category/27277)。在使用过程中一切都很顺利。因为太顺利了,所以测试没有做得很细,在给用户测试时,发现一个奇怪的现象:
  对于有些词组或句子,索引库中明明存在,但就是检索不出来,例如:
  对于“企业所得税”这个词组,按照“企业 所得税”能检索到内容,但去掉中间空格,按“企业所得税”来检索,却怎么也搜索不到。
  在Solr管理界面分析页面(http://127.0.0.1:8080/solr/admin/analysis.jsp),分析得到分词结果是:
  Index Analyzer:


企业所
企业
所得税
所得
  Query Analyzer:
  PanskyESE 管理页面
<script type="text/javascript"><!--
var host_name="xmptt2"
// --></script>


企业所
所得税
  奇怪,两个分词出来的结果竟然不一样。检查配置文件,在schema.xml文件中,IKAnalyzer的配置如下:

      <analyzer type="index">
<!--IK分词器-->
<tokenizer class = "org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false" />
...
</analyzer>
 
      <analyzer type="query">
<!--IK分词器-->
<tokenizer class = "org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="true" />
...
</analyzer>
  这是按照IKAnalyzer附带的安装手册做的配置,但是不明白为什么在索引时和搜索时isMaxWordLength要设置成不一样

。不管三七二十一,先把下面那个isMaxWordLength="true"改成isMaxWordLength="false"试试。
  改完,重启服务器,再搜索“企业所得税”,终于搜到结果了。
  问题算是解决了,但不明白原因,有明白人请赐教。
页: [1]
查看完整版本: 在Solr中使用IKAnalyzer遇到的一个问题