solr集成mmseg4j分詞
mmseg4j
https://code.google.com/p/mmseg4j/
https://github.com/chenlb/mmseg4j-solr
作者blog http://blog.chenlb.com/category/mmseg4j
-
mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法(http://technology.chtsai.org/mmseg/ )實現的中文分詞器,並實現 lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。
-
MMSeg 算法有兩種分詞方法:Simple和Complex,都是基於正向最大匹配。Complex 加了四個規則過慮。官方說:詞語的正確識別率達到了 98.41%。mmseg4j 已經實現了這兩種分詞算法。
mmseg4j-solr2.2.0里面有兩個jar包,分別是mmseg4j-core-1.10.0.jar,mmseg4j-solr-2.2.0.jar.將兩個jar拷貝到
配置
<fieldType name="text_mmseg" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
</analyzer>
</fieldType>
這時候在定義field是就可以使用text_mmseg的fieldType。
tokenizer參數
mmseg4j 在 solr 中主要支持兩個參數:mode、dicPath。mode 表示是什么模式分詞(有效值:simplex、complex、max-word,如果輸入了無效的默認用 max-word。)。dicPath 是詞庫目錄可以是絕對目錄,也可以是相對目錄(是相對 solr.home 目錄下的,dic 就會在 solr.home/dic 目錄下找詞庫文件),如果不指定就是默認在 CWD/data 目錄(程序運行當前目錄的data子目錄)下找。
這個地方所說的solr.home我理解的時候,總是覺得是tomcat/solr 這個目錄。也就是solr核心的根目錄,測試了很久,這里所說的solr.home是指定core的目錄,默認也就是/tomcat/solr/collection1這個目錄。
dicPath支持相對路徑和絕對路徑,上面配置的dic,所以需要在/tomcat/solr/
搜狗詞庫
http://www.sogou.com/labs/dl/r.html
需要轉換才能給mmseg4j來使用