solr安装-docker-单机版
Posted 邓剑然的进阶笔记
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了solr安装-docker-单机版相关的知识,希望对你有一定的参考价值。
1 安装docker环境
见安装
2 docker安装solr
2.1 拉取solr镜像(从官方镜像库)
docker pull solr:7.7.2
docker images
2.2 启动容器
#为了配置方便,希望将容器内部目录挂载出来,经尝试,直接在run的时候挂载目录无法正常启动,猜测是目录权限问题,也可能是我环境问题,后续再研究
#所以本流程先进行目录cp,赋权,然后在挂载
2.2.1 创建文件夹并赋权
mkdir -p /software/solr/server
chmod 777 /software/solr/server
2.2.2 将希望挂载的目录复制出来
#先进行构建,再cp,然后删除之前的容器,这样配置文件就被完整的cp到宿主机上,切记第二个指令目录不能写错
docker run --name solr -d -p 8983:8983 solr:7.7.2
docker cp solr:/opt/solr/server /software/solr/
docker rm -f solr
#此时如果直接构建容器,依然无法启动,容器存在但无法启动
2.2.3 将希望挂载的目录逐一赋权
chmod 777 /software/solr/server/contexts/
chmod 777 /software/solr/server/etc/
chmod 777 /software/solr/server/lib/
chmod 777 /software/solr/server/logs/
chmod 777 /software/solr/server/modules/
chmod 777 /software/solr/server/resources/
chmod 777 /software/solr/server/scripts/
chmod 777 /software/solr/server/scripts/cloud-scripts/
chmod 777 /software/solr/server/solr/
chmod 777 /software/solr/server/solr-webapp/
chmod 777 /software/solr/server/solr-webapp/webapp/
2.2.3 构建容器
# 完全相同的指令,即可构建成功
docker run --name solr -d -v /software/solr/server:/opt/solr/server -p 8983:8983 --privileged=true solr:7.7.2
docker ps
2.3 控制台管理页面查看是否启动正常
http://192.168.229.128:8983/solr/#/
2.4 新建core
docker exec -ti --user=solr my-solr bin/solr create_core -c mycore
新建完成后管理页面查看core是否新建成功
2.5 设置中文分词库smartcn
#中文分词库有多种,常用地如ikanalyzer,官方的smartcn,solr默认不安装中文分词库,如果无中文分词,在做中文搜索时就无法进行分词匹配,如下图所示:皆为单个文字
#本文使用官方分词库,后续可尝试其他分词库
#因已将容器内部配置已挂载到宿主机,则只要调整宿主机配置文件即可
2.5.1 修改对应core下的 solrconfig.xml
#添加分词lib位置
<lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" regex="lucene-analyzers-smartcn-7.7.2.jar" />
2.5.2 修改对应core下的 managed-schema
#添加如下fieldType
<fieldType name="text_chinese" 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>
#或如下配置,两者应该相同
<fieldType name="text_chinese" class="solr.TextField">
<analyzer>
<tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/>
</analyzer>
</fieldType>
2.6 确认容器内部配置已被更改
#容器和宿主机之间的挂载目录是共享的,此处不需验证,本文只为记录相关指令及操作
#进入容器命令行
docker exec -ti --user root solr /bin/bash
#找到对应配置文件,但容器内部无vivim指令,许在容器内安装
#docker安装vim,需先进行update,不然无法安装成功
apt-get update
apt-get install vim
#经验证内部配置文件及已变更
2.7 重启solr并验证分词
#exit退出容器命令行
exit
docker restart solr
#选择之前的fieldType名称
以上是关于solr安装-docker-单机版的主要内容,如果未能解决你的问题,请参考以下文章