solr 配置中文分词


在Solr6.5中实现配置中文分词IKAnalyzer和拼音分词pinyinAnalyzer。

一、创建Core:

1、首先在solrhome(solrhome的路径和配置见《 CentOS安装与配置Solr6.5 》 中solr的web.xml)中创建mycore目录;

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. [root@localhost down]#   
  2. [root@localhost down]# mkdir /down/apache-tomcat-8.5.12/solrhome/mycore  
  3. [root@localhost down]# cd /down/apache-tomcat-8.5.12/solrhome/mycore  
  4.   
  5. [root@localhost mycore]#   
2、复制solr-6.5.0\example\example-DIH\solr\solr下的所有文件到/down/apache-tomcat-8.5.12/solrhome/mycore目录下:
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. [root@localhost mycore]# cp -R /down/solr-6.5.0/example/example-DIH/solr/solr/* ./  
  2. [root@localhost mycore]# ls  
  3. conf  core.properties  
  4. [root@localhost mycore]#  
3、重新启动tomcat;
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. [root@localhost down]# /down/apache-tomcat-8.5.12/bin/shutdown.sh  
  2. [root@localhost down]# /down/apache-tomcat-8.5.12/bin/startup.sh  
4、此时在浏览器输入 http://localhost:8080/solr/index.html 即可出现Solr的管理界面,即可看到我们刚才的mycore


二、配置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/目录下。

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. [root@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文件.
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. [root@localhost conf]# cd /down/apache-tomcat-8.5.12/solrhome/mycore/conf  
  2. [root@localhost conf]# vi managed-schema   
在文件的 </schema>前添加
[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <fieldType name="text_smartcn" class="solr.TextField" positionIncrementGap="0">  
  2.     <analyzer type="index">  
  3.       <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>  
  4.     </analyzer>  
  5.     <analyzer type="query">  
  6.        <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>  
  7.     </analyzer>  
  8. </fieldType>  

重启tomcat,后在浏览器输入http://localhost:8080/solr/index.html#/mycore/analysis

在Field Value (Index)文本框输入一些中文,然后Analyse Fieldname / FieldType:选择text_smartcn查看中文分词的效果。

如图:

三、配置IKAnalyzer的中文分词:

1、首先下载IKAnalyzer 这是最新的支持solr6.5.

解压后会有四个文件。

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. [root@localhost ikanalyzer-solr5]# ls  
  2. 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

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. [root@localhost ikanalyzer-solr5]# cp ext.dic IKAnalyzer.cfg.xml stopword.dic /down/apache-tomcat-8.5.12/webapps/solr/WEB-INF/classes/  
[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">  
  3. <properties>  
  4.         <comment>IK Analyzer 扩展配置</comment>  
  5.         <!--用户可以在这里配置自己的扩展字典 -->  
  6.         <entry key="ext_dict">ext.dic;</entry>  
  7.   
  8.         <!--用户可以在这里配置自己的扩展停止词字典-->  
  9.         <entry key="ext_stopwords">stopword.dic;</entry>  
  10.   
  11. </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/目录下。

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. [root@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>前 增加如下配置

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <!-- 我添加的IK分词 -->  
  2. <fieldType name="text_ik" class="solr.TextField">  
  3.         <analyzer type="index">  
  4.             <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/>  
  5.         </analyzer>  
  6.         <analyzer type="query">  
  7.             <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/>  
  8.         </analyzer>  
  9. </fieldType>  

注意:  记得将stopword.dic,ext.dic的编码方式为UTF-8 无BOM的编码方式。 

重启tomcat查看分词效果。



四、配置拼音检索:

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/目录下。

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. [root@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>前增加如下配置:
[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <fieldType name="text_pinyin" class="solr.TextField" positionIncrementGap="0">  
  2.     <analyzer type="index">  
  3.         <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/>  
  4.         <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />  
  5.         <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />  
  6.     </analyzer>  
  7.     <analyzer type="query">  
  8.         <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/>  
  9.         <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />  
  10.         <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />  
  11.     </analyzer>  
  12. </fieldType>  
重启tomcat查看拼音检索效果。

这里用的是solr自带的中文分词加上pinyin4j来实现的

相关文件的下载地址:

ikanalyzer-solr5.zip

pinyin.zip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值