全文索引----中文分词器mmseg4j

        通常情况下,我们根据整个字段来索引数据,字段最长时,也不过十个字;但是还有一种情况,如果我们索引的是一篇文章呢?这时候如何处理这个字段,分词器很好的解决了这个问题。

        solr服务器默认为我们提供了分词组件,但是Apache Solr提供的分词器对中文不太友好,举例如下:

全文索引----中文分词器mmseg4j_第1张图片

        它把整个句子的每个字都给分开了,这样如果索引一篇文章的话,体验相当的不友好。能够和solr完美集成的中文分词器不少,例如Mmseg4j、IkAnalyzer、ICTCLAS等。本文以Mmeseg4j为例,介绍中文分词器的使用。
        一 引入jar包

        下载以下三个jar包,mmseg4j-analysis-1.9.1.jar, mmseg4j-core-1.9.1.jar,mmseg4j-solr-1.9.1.jar,放到目录:/usr/local/solr-4.7.2/example/solr-webapp/webapp/WEB-INF/lib。

全文索引----中文分词器mmseg4j_第2张图片

        二 修改schema.xml

        2.1 配置代码如下:

	<!-- mmseg4j-->
	<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-->

        2.2 索引效果如下:

全文索引----中文分词器mmseg4j_第3张图片

        三 测试
        3.1 添加测试文件

        添加测试数据,内容如下:

全文索引----中文分词器mmseg4j_第4张图片

        3.2  查看搜索结果

全文索引----中文分词器mmseg4j_第5张图片

        四 总结

        中文分词器可以提高句子的索引效率,项目中应该合理使用。

你可能感兴趣的:(Solr,mmseg4j,solr中文分词器)