solr集成mmseg4j分詞

solr集成mmseg4j分詞

mmseg4j

https://code.google.com/p/mmseg4j/html

https://github.com/chenlb/mmseg4j-solrgit

做者blog http://blog.chenlb.com/category/mmseg4jgithub

  1. mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法(http://technology.chtsai.org/mmseg/ )實現的中文分詞器,並實現 lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用。算法

  2. MMSeg 算法有兩種分詞方法:Simple和Complex,都是基於正向最大匹配。Complex 加了四個規則過慮。官方說:詞語的正確識別率達到了 98.41%。mmseg4j 已經實現了這兩種分詞算法。tomcat

mmseg4j-solr2.2.0裏面有兩個jar包,分別是mmseg4j-core-1.10.0.jar,mmseg4j-solr-2.2.0.jar.將兩個jar拷貝到 /WEB-INF/lib裏面。 測試

配置

<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。google

tokenizer參數

mmseg4j 在 solr 中主要支持兩個參數:mode、dicPath。mode 表示是什麼模式分詞(有效值:simplex、complex、max-word,若是輸入了無效的默認用 max-word。)。dicPath 是詞庫目錄能夠是絕對目錄,也能夠是相對目錄(是相對 solr.home 目錄下的,dic 就會在 solr.home/dic 目錄下找詞庫文件),若是不指定就是默認在 CWD/data 目錄(程序運行當前目錄的data子目錄)下找。code

這個地方所說的solr.home我理解的時候,老是以爲是tomcat/solr 這個目錄。也就是solr核心的根目錄,測試了好久,這裏所說的solr.home是指定core的目錄,默認也就是/tomcat/solr/collection1這個目錄。htm

dicPath支持相對路徑和絕對路徑,上面配置的dic,因此須要在/tomcat/solr/ 這個目錄建立一個名爲dic的目錄。而後將詞庫文件放到這個目錄下。而且詞庫文件名必須以words開頭.dic結尾。詞庫強制使用utf-8.因爲 utf-8 文件有帶與不帶 BOM 之分,建議詞庫第一行爲空行或爲無 BOM 格式的 utf-8 文件。 blog

搜狗詞庫

http://www.sogou.com/labs/dl/r.html

須要轉換才能給mmseg4j來使用

相關文章
相關標籤/搜索