整理一下前端时间用的solr结合拼音分词与ik中文分词。solr比lucene封装较好,可以直接在配置文件中配置这些分词就可以直接用。
主要工具包:
pinyinAnalyzer.jar
ik-analyzer-solr6.x.jar
pinyin4j-2.5.0.jar
IKAnalyzer.cfg.xml
mydict.dic
stopword.dic
上面包的
下载地址
。其中ik的分词包是修改过重新打包已适用于6.0以上的solr版本的,将三个jar包放在solr项目的WEB-INF/lib文件夹下,IKAnalyzer.cfg.xml,mydict.dic,stopword.dic三个文件放在WEB-INF/classes文件夹下,没有classes文件夹就新建一个,其中IKAnalyzer.cfg.xml为配置分词包的配置文件,mydict.dic和stopword.dic问中文分词包和停词包。
在managed-schema配置文件中直接配置分词:
<!-- 中文与拼音分词-->
<fieldType name="text_pinyin" class="solr.TextField" positionIncrementGap="0">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false"/>
<filter class="utn.index.mmseg.solr.PinyinTokenFilterFactory" minTermLength="2" pinyinAll="true" outChinese="true"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" userSmart="true"/>
<filter class="utn.index.mmseg.solr.PinyinTokenFilterFactory" minTermLength="2" pinyinAll="true" outChinese="true"/>
</analyzer>
</fieldType>
在需要分词的字段设置type=“text_pinyin”就可以实现分词。
<field name="name" type="text_pinyin" indexed="true" stored="true" />
在solr admin页面也可以查看分词效果: