下载IKAnalyzer-2012FF_hf1之后。与solr4.x匹配,但其文档中介绍的useSmart一直无法使用和生效。
schema配置如下:
<span style="font-size:14px;"> <!--配置IK分词器-->
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" isMaxWordLength="false" class="org.wltea.analyzer.lucene.IKAnalyzer" /> <!--索引时候的分词器-->
<analyzer type="query" isMaxWordLength="true" class="org.wltea.analyzer.lucene.IKAnalyzer" /> <!--查询时候的分词器-->
</fieldType></span>
但是真正测试结果是无效的的,全部都是最细粒切词。
如图:
为了解决这个问题,网上分享了他人的资料,解决了这个问题。新增两个类,然后重新编译打包。 打包后jar包:
链接:http://pan.baidu.com/s/1i4qs1Yt 密码:ix1r
重新指向ik的配置
<!-- IKAnalyzer 中文分词 -->
<fieldType name="text_ik" class="solr.TextField"
positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.wltea.analyzer.lucene.IKAnalyzerSolrFactory" isMaxWordLength="false" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopword.dic" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.wltea.analyzer.lucene.IKAnalyzerSolrFactory" isMaxWordLength="true" />
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopword.dic" enablePositionIncrements="true" />
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true" />
<filter class="solr.LowerCaseFilterFactory" />
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
</analyzer>
</fieldType>
<!-- 引用智能分词 -->
<fieldType name="smart_ik" class="solr.TextField">
<analyzer >
<tokenizer class="org.wltea.analyzer.lucene.IKAnalyzerSolrFactory" isMaxWordLength="true" /><!-- 智能分词 -->
</analyzer>
</fieldType>
<!-- 引用最细粒 -->
<fieldType name="tiny_ik" class="solr.TextField">
<analyzer >
<tokenizer class="org.wltea.analyzer.lucene.IKAnalyzerSolrFactory" isMaxWordLength="false" /><!-- 最细粒分词 -->
</analyzer>
</fieldType>
重启:结果如下