solr集成mmseg4j分词
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来使用