摘要
目的 实现在Docker下安装及配置Solr,并配置IK分词器。方法 使用docker基础命令安装solr,使用数据库驱动、相关jar和配置文件配置ik分词器。结果solr成功安装,成功使中文进行了分词。 结论 中文分词效果良好,但实验期间触发了很多异常。
此实验使用的软件版本
- Windows 10 专业版
- DockerCE 19.03.5
- Solr 8.5.1
- MySQL 8.0.16
使用的jar包
- ik-analyzer-8.3.0.jar
- elasticsearch-analysis-ik-7.6.2.jar
- solr-dataimporthandler-extras-8.5.1.jar
- solr-dataimporthandler-8.5.1.jar
- mysql-connector-java-8.0.16.jar
Solr安装
ps:使用默认地址下载容器会非常慢,可使用aliyun官网镜像加速地址,需要在aliyun官网申请,链接我这里就不发了。
搜索Solr版本。我使用的是win10自带的powershell
docker search solr
选定好版本后pull下载,我这里选择了8.5.1版本
docker pull solr:8.5.1
查看pull下载的列表,注意images后面的s因为是复数有多个镜像
docker images
启动pull下来的镜像
–name: 为容器指定一个名称;
-d: 后台运行容器,并返回容器ID;
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口;
–restart=always: 当docker服务重启时,启动此容器
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
docker run --name solr -d -p 8983:8983 --restart=always -t solr
查看容器
docker ps命令查看启动的容器 docker ps -a查看所有容器,包括未启动的
docker ps / docker -a
ps:查看容器启动日志 -f 为 实时查看
docker logs -f [容器id(CONTAINER ID)]
ps:不知道docker版本的可以 docker version查看版本信息
配置IK分词器
创建Core
cp -r server/solr/configsets/_default/conf /var/solr/data/platform_core
配置持久化
docker cp df544f557808:/opt/solr-8.5.1/ c:/solr/
配置IK分词器
分词器jar包下载地址
https://search.maven.org/search?q=com.github.magese
还需下载mysql驱动包
下载好所有jar包后从宿主机拷贝到docker容器中
docker cp C:\solr\solr-dataimporthandler-extras-8.5.1.jar df544f557808:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib/solr-dataimporthandler-extras-8.5.1.jar
docker cp C:\solr\solr-dataimporthandler-8.5.1.jar df544f557808:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib/solr-dataimporthandler-8.5.1.jar
docker cp C:\solr\mysql-connector-java-8.0.16.jar df544f557808:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib/mysql-connector-java-8.0.16.jar
docker cp C:\solr\elasticsearch-analysis-ik-7.6.2.jar df544f557808:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib/elasticsearch-analysis-ik-7.6.2.jar
docker cp c:\solr\ik-analyzer-8.3.0.jar df544f557808:/opt/solr/server/solr-webapp/webapp/WEB-INF/lib/ik-analyzer-8.3.0.jar
不想写了,自己看吧
新建data-config.xml
<field column='id' name='id' />
<field column='fileName' name='fileName' />
<field column='ext' name='ext' />
<field column='path' name='path' />
<field column='size' name='size' />
<field column='type' name='type' />
<field column='isImg' name='isImg' />
<field column='downCounts' name='downCounts' />
<field column='uploadTime' name='uploadTime' />
<field column='uploadUser' name='uploadUser' />
<field column='newFileName' name='newFileName' />
<field column='status' name='status' />
<field column='thumbnailAddr' name='thumbnailAddr' />
</entity>
</document>
docker cp c:\solr\data-config.xml df544f557808:/var/solr/data/platform_core/conf/data-config.xml
docker cp df544f557808:/var/solr/data/platform_core/conf/managed-schema C:\solr\
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer" />
<analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer" />
</fieldType>
docker cp c:\solr\managed-schema df544f557808:/var/solr/data/platform_core/conf/managed-schema
docker cp df544f557808:/var/solr/data/platform_core/conf/solrconfig.xml c:\solr\solrconfig.xml
data-config.xmldocker cp c:\solr\solrconfig.xml df544f557808:/var/solr/data/platform_core/conf/solrconfig.xml
docker cp c:\solr\dataImport.properties df544f557808:/var/solr/data/platform_core/conf/dataImport.properties