您的位置:首页 > 其它

解决solr4.x搭建ik不能智能分词

2015-03-24 17:13 351 查看
下载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>


重启:结果如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: