在Solr中使用IKAnalyzer遇到的一个问题
对于有些词组或句子,索引库中明明存在,但就是检索不出来,例如:
对于“企业所得税”这个词组,按照“企业 所得税”能检索到内容,但去掉中间空格,按“企业所得税”来检索,却怎么也搜索不到。
在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"试试。
改完,重启服务器,再搜索“企业所得税”,终于搜到结果了。
问题算是解决了,但不明白原因,有明白人请赐教。
相关推荐
spylyt 2020-09-11
upxiaofeng 2020-06-11
TyCoding 2020-05-03
upxiaofeng 2020-04-30
lionelf 2020-04-20
TyCoding 2020-04-08
TyCoding 2020-03-26
wenchanter 2020-03-26
roygbip 2020-02-16
wsxsxz 2020-02-03
lionelf 2020-02-03
lionelf 2020-02-03
TyCoding 2020-02-01
heniancheng 2020-01-31
lionelf 2020-01-30
TyCoding 2020-01-10