大家好,我是一网菜鸟网(http://www.sklll.com)站长,网站目前正在维护中,今天在这里做一下Solr4.x和mmseg41.9.1集成的详细文章说明,包括mmseg4j1.9.1的一些源码的修改,大家有什么不懂的可以给我留言或者到我群(225223397)内一起导论,我邮箱[email protected]。
前面我们讲了solr4.8.1和tomcat7集成,这里再讲一下中文分词,中文分词最简单集成的是IK分词器,但是IK分词器似乎不是那么理想,所以我考虑集成mmseg4j。
由于solr的版本比较高,所以我们也选择版本较高的mmseg4j,这里选用的是mmseg4j1.9.1,具体下载我就不说了,下载一个下面的包就可以了。
解压mmseg4j,并将\mmseg4j-1.9.1\dist目录下的jar包全部放到\server\solr\WEB-INF\lib下,再到\home\collection1\conf下找到schema.xml,加上如下代码:
<fieldType name="text_mmseg4j_complex" class="solr.TextField" positionIncrementGap="100" > <analyzer> <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/> </analyzer> </fieldType> <fieldType name="text_mmseg4j_maxword" class="solr.TextField" positionIncrementGap="100" > <analyzer> <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="dic"/> </analyzer> </fieldType> <fieldType name="text_mmseg4j_simple" class="solr.TextField" positionIncrementGap="100" > <analyzer> <!-- <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="n:/OpenSource/apache-solr-1.3.0/example/solr/my_dic"/> --> <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="dic"/> </analyzer> </fieldType> <!-- mmseg4j-->
这时候运行tomcat,访问solr选择分词就会报如下错误:
我们这里需要修改solr的源代码,找到\mmseg4j-1.9.1\mmseg4j-analysis\src\main\java\com\chenlb\mmseg4j\analysis\MMSegTokenizer.java,修改如下图:
修改后运行mvn clean package -DskipTests进行打包,这里网上也有一些资料,但是都没有说具体的怎么打包,对于不熟悉maven的人来说有一定困难。
maven安装好了后,只需要输入上面一行命令回车就行了。至于maven的安装我就不说了。
这时候\mmseg4j-1.9.1\mmseg4j-analysis包下回多了一个文件夹,打开它就可以看到新的jar包了,把项目中的包替换掉就可以了。
到这里就都解决了,重启启动tomcat,运行界面如下:
大功告成了,下一节,我们再讲和其他中文分词器集成。
我的网站目前还在研发中,欢迎关注下,网站名称:一网菜鸟网,网址:sklll.com 敬请关注