Solr入门之(8)中文分词器配置
Solr中虽然提供了一个中文分词器,但是效果很差,可以使用IKAnalyzer或Mmseg4j 或其他中文分词器。一、IKAnalyzer分词器配置:
1、下载IKAnalyzer(IKAnalyzer2012_u6)包,当前使用版本IKAnalyzer2012_u6.jar
2、将IKAnalyzer2012_u6包下的IKAnalyzer.cfg.xml和stopword.dic复制到solr应用/WEB-INF/classes下。
3、在${solr_home}//conf/schema.xml中增加一个自定义fieldType:
<!-- 中文IK分词 -->
<fieldType name="text_ik_analyzer" positionIncrementGap="100" class="solr.TextField">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory"/>
<filter class="solr.StopFilterFactory" enablePositionIncrements="true" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.WordDelimiterFilterFactory" splitOnCaseChange="1" catenateAll="0" catenateNumbers="1" catenateWords="1" generateNumberParts="1" generateWordParts="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" ignoreCase="true" expand="true" synonyms="synonyms.txt"/>
<filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
<filter class="solr.WordDelimiterFilterFactory" splitOnCaseChange="1" catenateAll="0" catenateNumbers="0" catenateWords="0" generateNumberParts="1" generateWordParts="1"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.EnglishPorterFilterFactory" protected="protwords.txt"/>
<filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
</analyzer>
</fieldType>
4、在schema.xml中增加一个字段:
<field name="test_ik_field" type="text_ik_analyzer" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" />
5、启动solr应用,即可在客户端界面查看分词效果。
二、Mmseg4j分词器:
配置方式与上面类似,暂时未定义。
页:
[1]