Docker下安装及配置Solr、IK分词器

摘要

目的 实现在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

<?xml version="1.0" encoding="UTF-8"?>
        <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.xml

docker 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


版权声明:本文为qq_33978304原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。