码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-05-12 12:34:07      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

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

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

技术分享

        它把整个句子的每个字都给分开了,这样如果索引一篇文章的话,体验相当的不友好。能够和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。

技术分享

        二 修改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 索引效果如下:

技术分享

        三 测试
        3.1 添加测试文件

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

技术分享

        3.2  查看搜索结果

技术分享

        四 总结

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

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

标签:

原文地址:http://blog.csdn.net/u010942465/article/details/51366423

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!