设为首页 收藏本站
查看: 1260|回复: 0

[经验分享] Solr6.5配置中文分词IKAnalyzer和拼音分词pinyinAnalyzer (二)

[复制链接]

尚未签到

发表于 2017-12-19 22:56:59 | 显示全部楼层 |阅读模式
  之前在 Solr6.5在Centos6上的安装与配置 (一) 一文中介绍了solr6.5的安装。这篇文章主要介绍创建Solr的Core并配置中文IKAnalyzer分词和拼音检索。

一、创建Core:
  1、首先在solrhome(solrhome的路径和配置见Solr6.5在Centos6上的安装与配置 (一)中solr的web.xml)中创建mycore目录;
  

[iyunv@localhost down]#  
[iyunv@localhost down]# mkdir /down/apache-tomcat-8.5.12/solrhome/mycore
  
[iyunv@localhost down]# cd /down/apache-tomcat-8.5.12/solrhome/mycore
  

[iyunv@localhost mycore]#   

  2、复制solr-6.5.0\example\example-DIH\solr\solr下的所有文件到/down/apache-tomcat-8.5.12/solrhome/mycore目录下:
  

[iyunv@localhost mycore]# cp -R /down/solr-6.5.0/example/example-DIH/solr/solr/* ./  
[iyunv@localhost mycore]# ls
  
conf  core.properties
  
[iyunv@localhost mycore]#
  

  3、重新启动tomcat;
  

[iyunv@localhost down]# /down/apache-tomcat-8.5.12/bin/shutdown.sh  
[iyunv@localhost down]# /down/apache-tomcat-8.5.12/bin/startup.sh
  

  4、此时在浏览器输入http://localhost:8080/solr/index.html即可出现Solr的管理界面,即可看到我们刚才的mycore
DSC0000.png

DSC0001.png


二、配置solr自带的中文分词(和IK的区别是不能自己添加词库):
  1、配置solr6.5自带中文分词。复制solr-6.5.0/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-6.5.0.jar到apache-tomcat-8.5.12/webapps/solr/WEB-INF/lib/目录下。
  

[iyunv@localhost down]# cp /down/solr-6.5.0/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-6.5.0.jar /down/apache-tomcat-8.5.12/webapps/solr/WEB-INF/lib/  

  2、为core添加对中文分词的支持。编辑mycore下conf下的managed-schema文件.
  

[iyunv@localhost conf]# cd /down/apache-tomcat-8.5.12/solrhome/mycore/conf  
[iyunv@localhost conf]# vi managed-schema
  

  在文件的</schema>前添加
  

<fieldType name="text_smartcn" positionIncrementGap="0">  
<analyzer type="index">
  
<tokenizer/>
  
</analyzer>
  
<analyzer type="query">
  
<tokenizer/>
  
</analyzer>
  
</fieldType>
  

  重启tomcat,后在浏览器输入http://localhost:8080/solr/index.html#/mycore/analysis
  在Field Value (Index)文本框输入一些中文,然后Analyse Fieldname / FieldType:选择text_smartcn查看中文分词的效果。
  如图:
DSC0002.png


三、配置IKAnalyzer的中文分词:
  1、首先下载IKAnalyzer 这是最新的支持solr6.5.
  解压后会有四个文件。
  

[iyunv@localhost ikanalyzer-solr5]# ls  
ext.dic  IKAnalyzer.cfg.xml  solr-analyzer-ik-5.1.0.jar ik-analyzer-solr5-5.x.jar  stopword.dic
  

  

ext.dic为扩展字典,stopword.dic为停止词字典,IKAnalyzer.cfg.xml为配置文件,solr-analyzer-ik-5.1.0.jar ik-analyzer-solr5-5.x.jar为分词jar包。  2、将文件夹下的IKAnalyzer.cfg.xml , ext.dic和stopword.dic 三个文件 复制到/webapps/solr/WEB-INF/classes 目录下,并修改IKAnalyzer.cfg.xml
  

  

[iyunv@localhost ikanalyzer-solr5]# cp ext.dic IKAnalyzer.cfg.xml stopword.dic /down/apache-tomcat-8.5.12/webapps/solr/WEB-INF/classes/  

  

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
  
<properties>
  
<comment>IK Analyzer 扩展配置</comment>
  
<!--用户可以在这里配置自己的扩展字典 -->
  
<entry key="ext_dict">ext.dic;</entry>
  

  
<!--用户可以在这里配置自己的扩展停止词字典-->
  
<entry key="ext_stopwords">stopword.dic;</entry>
  

  
</properties>
  

  3、在ext.dic 里增加自己的扩展词典,例如,唯品会 聚美优品
  4、复制solr-analyzer-ik-5.1.0.jar ik-analyzer-solr5-5.x.jar到/down/apache-tomcat-8.5.12/webapps/solr/WEB-INF/lib/目录下。
  

[iyunv@localhost down]# cp /down/ikanalyzer-solr5/solr-analyzer-ik-5.1.0.jar ik-analyzer-solr5-5.x.jar /down/apache-tomcat-8.5.12/webapps/solr/WEB-INF/lib/  

  5、在 solrhome\mycore\conf\managed-schema 文件</schema>前增加如下配置
  

<!-- 我添加的IK分词 -->  
<fieldType name="text_ik">
  
<analyzer type="index">
  
<tokenizer useSmart="true"/>
  
</analyzer>
  
<analyzer type="query">
  
<tokenizer useSmart="true"/>
  
</analyzer>
  
</fieldType>
  

  注意:  记得将stopword.dic,ext.dic的编码方式为UTF-8 无BOM的编码方式。
  重启tomcat查看分词效果。
DSC0003.png

  

  

四、配置拼音检索:
  1、前期准备,需要用到pinyin4j-2.5.0.jar、pinyinAnalyzer.jar这两个jar包,下载地址。
  2、将pinyin4j-2.5.0.jar、pinyinAnalyzer.jar这两个jar包复制到/down/apache-tomcat-8.5.12/webapps/solr/WEB-INF/lib/目录下。
  

[iyunv@localhost down]# cp pinyin4j-2.5.0.jar pinyinAnalyzer4.3.1.jar /down/apache-tomcat-8.5.12/webapps/solr/WEB-INF/lib/  

  3、在 solrhome\mycore\conf\managed-schema 文件</schema>前增加如下配置:
  

<fieldType name="text_pinyin" positionIncrementGap="0">  
<analyzer type="index">
  
<tokenizer/>
  
<filter minTermLenght="2" />
  
<filter minGram="1" maxGram="20" />
  
</analyzer>
  
<analyzer type="query">
  
<tokenizer/>
  
<filter minTermLenght="2" />
  
<filter minGram="1" maxGram="20" />
  
</analyzer>
  
</fieldType>
  

  重启tomcat查看拼音检索效果。
DSC0004.png

  这里用的是solr自带的中文分词加上pinyin4j来实现的。
  相关文件的下载地址:
  ikanalyzer-solr5.zip
  pinyin.zip
  所有要用到的文件:solr6.5ik-pinyin.zip

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-425868-1-1.html 上篇帖子: 使用solr界面管理工具创建core 不能用的解决方法 下篇帖子: 【solr】之solr界面查询返回距离并排序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表