IK分词源代码分析学习——与solr4.0接口
生活随笔
收集整理的這篇文章主要介紹了
IK分词源代码分析学习——与solr4.0接口
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在Solr4.0發布以后,官方取消了BaseTokenizerFactory接口,而直接使用Lucene Analyzer標準接口。因此IK分詞器2012 FF版本也取消了org.wltea.analyzer.solr.IKTokenizerFactory類。
所以以前在schema.xml文件中加入的內容:
<fieldType name="text" class="solr.TextField" positionIncrementGap="100"><analyzer type="index"><tokenizer class = "org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false" /> ......</analyzer><analyzer type="query"><tokenizer class = "org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="true" /> ......</analyzer></fieldType>而現在在schema.xml文件中加入的內容為:
<fieldType name="text" class="solr.TextField"><analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/></fieldType>這也是之前配置會出錯的原因,除非自己實現了IKTokenizerFactory類。
以下是IK分詞器,Lucene Analyzer接口實現 兼容Lucene 4.0版本代碼
public final class IKAnalyzer extends Analyzer {private boolean useSmart;public boolean useSmart() {return useSmart;}public void setUseSmart(boolean useSmart) {this.useSmart = useSmart;}/*** IK分詞器Lucene Analyzer接口實現類* * 默認細粒度切分算法*/public IKAnalyzer() {this(false);}/*** IK分詞器Lucene Analyzer接口實現類* * @param useSmart* 當為true時,分詞器進行智能切分*/public IKAnalyzer(boolean useSmart) {super();this.useSmart = useSmart;}/*** 重載Analyzer接口,構造分詞組件*/@Overrideprotected TokenStreamComponents createComponents(String fieldName,final Reader in) {Tokenizer _IKTokenizer = new IKTokenizer(in, this.useSmart());return new TokenStreamComponents(_IKTokenizer);}}solr調用analyzer:?http://ronxin999.blog.163.com/blog/static/4221792020117854548995/?suggestedreading
轉載于:https://www.cnblogs.com/sunshineKID/p/3437862.html
總結
以上是生活随笔為你收集整理的IK分词源代码分析学习——与solr4.0接口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C语言获得文件一行
- 下一篇: eclipse连接小米2调试程序的问题