docker 安装solr8.6.2 配置中文分词器的方法

    Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

一、环境版本
Docker: version 19.03.12, build 48a66213fe
系统:CentOS Linux release 7.8.2003 (Core)
solr:8.6.2

二、docker 安装
略......
三、拉取镜像
docker pull solr
四、创建solr容器
docker run --name blog-solr -d -p 8983:8983 solr
五、创建核心
docker exec -it --user=solr blog-solr bin/solr create_core -c Ik_core
出现 Created new core ‘Ik_core' 即创建超过

六、浏览器访问
http://10.0.7.67:8983/solr/#/




七、
solr配置中文分词器 5.2 下载Ik文件
链接: https://pan.baidu.com/s/1ssbAGbnBU3EoBe71rCFM4Q 提取码: wtkt 
// 创建创建个目录将解压的文件放在这里mkdir /mnt/Ik/
在这里插入图片描述
6.1 复制配置文件
docker cp ik-analyzer-8.3.0.jar blog-solr:/opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/
docker cp ik-analyzer-solr7-7.x.jar blog-solr:/opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/
docker cp solr-dataimporthandler-8.4.0.jar blog-solr:/opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/
docker cp solr-dataimporthandler-extras-8.4.0.jar blog-solr:/opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/
6.2 创建classes文件夹
docker exec -it --user=root blog-solr /bin/bash
mkdir /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/classes
exit
docker cp IKAnalyzer.cfg.xml blog-solr:/opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/classes/
6.3 创建 IKAnalyzer.cfg.xml
<?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>
6.4 修改managed-schema文件
docker exec -it --user=root blog-solr /bin/bash
cp /opt/solr-8.6.2/contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-8.6.2.jar /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/lib/
cd /var/solr/data/Ik_core/conf
vi managed-schema文件在最下面添加:
<!-- ik分词器 -->
 <fieldType name="text_ik" class="solr.TextField">
     <analyzer type="index">
         <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="false" conf="ik.conf"/>
         <filter class="solr.LowerCaseFilterFactory"/>
     </analyzer>
     <analyzer type="query">
         <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" conf="ik.conf"/>
         <filter class="solr.LowerCaseFilterFactory"/>
     </analyzer>
 </fieldType>
 
 <fieldType name="text_cn" class="solr.TextField" positionIncrementGap="100">
     <analyzer type="index">
         <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
     </analyzer>
     <analyzer type="query">
         <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
     </analyzer>
 </fieldType>
6.5 修改solrconfig.xml
在最下面添加
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> 
 <lst name="defaults">
  <str name="config">db-data-config.xml</str> 
 </lst> 
</requestHandler>
6.6 重启solr
docker restart blog-solr
八、测试
1.查看分词器是否配置成功

2.测试分词器是否能够正常分词

网友评论(0)