docker 安装solr8.6.2 配置中文分词器的方法
(编辑:jimmy 日期: 2024/12/23 浏览:3 次 )
一、环境版本
Docker version 19.03.12
centos7
solr8.6.2
二、docker安装
1.使用官方安装脚本自动安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
2.使用国内 daocloud 一键安装命令:
curl -sSL https://get.daocloud.io/docker | sh
三、docker安装solr8.6.2 1.docker拉取solr
docker pull solr
2.创建并允许solr容器
docker run --name blog-solr -d -p 8983:8983 solr // blog-solr这个可用自行命名
// 参数详解
run 运行容器
-d 后台运行
-p 容器端口和宿机端口映射
– name 容器名称
blog-solr 指镜像名称
3.创建核心
docker exec -it --user=solr blog-solr bin/solr create_core -c Ik_core
出现 Created new core ‘Ik_core' 即创建超过
4.浏览器访问
浏览器输入 IP:8983 访问 我这里是服务器上搭建的
5.solr配置中文分词器 5.2 下载Ik文件
链接: https://pan.baidu.com/s/1pkI9ZCThkDdzj4MWg3MO9A 提取码: pgv8
// 创建创建个目录将解压的文件放在这里mkdir /mnt/Ik/
5.2 复制配置文件
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/
进入solr容器创建文件夹
docker exec -it --user=root blog-solr /bin/bash cd /opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF mkdir classes exit docker cp IKAnalyzer.cfg.xml blog-solr:/opt/solr-8.6.2/server/solr-webapp/webapp/WEB-INF/classes/
5.3 IKAnalyzer.cfg.xml
<"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>
5.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 vim managed-schema
如果没有vim可以使用vi 或者使用apt-get install vim 安装
在最下面添加:
<!-- 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>
5.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>
重启solr
exit docker restart blog-solr
四、测试
1.查看分词器是否配置成功
2.测试分词器是否能够正常分词
3.测试搜索功能