开发者社区> 技术小牛人> 正文

Solr4.7.1中配置中文分词器

简介:
+关注继续查看

1、SmartChineseAnalyzer

   (1)将lucene-analyzers-smartcn-4.7.1.jar添加到tomcat/webapps/solr/WEB-INF/lib文件中

   (2)编辑solr主目录中conf/schema.xml文件,在<types></types>之间添加如下定义:

wKiom1M_sjvSHHlrAAESnNtIraw311.jpg

   (3)为了测试,将schema.xml中<field name="author">的type类型改为text_zh

wKioL1M_ssqRk0SSAABUejex56A373.jpg

   (4)测试,启动tomcat,浏览器访问http://localhost:8080/solr/#/collection1/analysis

wKiom1M_s6HwMOPUAAHbV7sXGD4533.jpg



2、IK Analyzer

   (1)将IKAnalyzer2012FF_u1.jar添加到tomcat/webapps/solr/WEB-INF/lib文件夹中

   (2)编辑solr主目录中conf/schema.xml文件,添加如下定义

wKiom1M_tI-TOWuPAACxx6Pd1jA673.jpg

   (3)为了配合测试,将title自动的type改为text_ik

wKioL1M_tNGTRXeUAACLO_qnvDs281.jpg

   (4)测试,同样http://localhost:8080/solr/#/collection1/analysis

wKiom1M_tV6hNexOAAH1HcrnjMQ941.jpg


补充:

   MMSeg4j也是一个中文分词器,当前版本是1.9.1,链接:http://code.google.com/p/mmseg4j/

   我在测试过程中发现,用这个分词器在分词时会报如下错误:

java.lang.IllegalStateException: TokenStream contract violation: reset()/close() call missing, reset() called multiple times, or subclass does not call super.reset(). Please see Javadocs of TokenStream class for more information about the correct consuming workflow.

   原因是在调用incrementToken()方法之前没有调用reset()方法

   这里纠结这个问题了。。。



本文转自    手不要乱摸      51CTO博客,原文链接:http://blog.51cto.com/5880861/1390918

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Lucene&&Solr——分析器(Analyzer)
Lucene&&Solr——分析器(Analyzer)
24 0
【Solr】之中文分词及IK库的安装使用-4
【Solr】之中文分词及IK库的安装使用-4
30 0
solr配置 中文分析器 IK Analyzer下载
solr配置 中文分析器 IK Analyzer下载
93 0
全文检索Solr集成HanLP中文分词
以前发布过HanLP的Lucene插件,后来很多人跟我说其实Solr更流行(反正我是觉得既然Solr是Lucene的子项目,那么稍微改改配置就能支持Solr),于是就抽空做了个Solr插件出来,开源在Github上,欢迎改进。
3185 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载