最近solr更新到5.0,想实现ik分词,一没成功,可能是版本问题吧。先利用内部分词器吧,不用考虑版本问题,但不支持词库,不支持最细粒度。一般需求还是能满足的。
步奏如下:
1.Solr中默认的中文分词是用Lucene的一元分词包。
现在说明在Solr5.0中配置Lucene的SmartCN中文分词包。
进入Solr的安装目录,我这里是:/root/nutch/solr-5.0.0
把contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-5.0.0.jar包复制到solr的启动目录的lib目录下。
2.修改managed-schema配置文件。此文件在/root/nutch/solr-5.0.0/server/solr/mycore1/conf目录下,其中mycore1是建立的core名称。
在/root/nutch/solr-5.0.0/server/solr/mycore1/conf/managed-schema配置文件中添加如下信
3.配置分词器(集fieldType)我只这么叫的
<fieldTypename="text_smart"class="solr.TextField"positionIncrementGap="100">
<analyzertype="index">
<!-- 此处需要配置主要的分词类 -->
<tokenizerclass="solr.SmartChineseSentenceTokenizerFactory"/>
<!--
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.LowerCaseFilterFactory"/>
-->
<!-- in this example, we will only use synonyms at query time
<filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
-->
<filterclass="solr.SmartChineseWordTokenFilterFactory"/>
</analyzer>
<analyzertype="query">
<!-- 此处配置同上 -->
<tokenizerclass="solr.SmartChineseSentenceTokenizerFactory"/>
<!--
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
-->
<filterclass="solr.SmartChineseWordTokenFilterFactory"/>
</analyzer>
</fieldType>
4.配置field
<field name="_text_smart"type="text_smart" indexed="true" stored="true" multiValued="true"/>
5.重启就OK了