用Docker安装solr,练习solr的使用

solr安装

  1. 首先使用 systemctl start docker 命令启动docker
  2. 使用 docker pull solr:5.5.4 拉取solr的镜像.这里拉取的是公司用的5.5.4版本,学习建议不添加版本号,用latest版本
  3. 等待命令执行完成,可以使用 docker iamges 命令来看镜像是否拉取成功。
  4. mkdir /opt/apps/solr 新建一个文件目录,用来把容器内部的配置文件移出到外面
  5. 创建并且启动一个容器 docker run --name solr -d -p 8983:8983 solr:5.5.4
  6. 使用 docker ps -a 来检查容器是否启动成功,一般启动成功会生成CONTAINER ID
  7. 使用 docker cp solr:/opt/solr/ /opt/apps/solr/ 来复制容器内部的数据到本地。这一步不用迷惑,docker创建的容器内部编辑修改文件都十分不方便,所以要复制出文件来作为数据卷挂载到启动的容器,这样在本地修改文件,容器内部也会更改,减少了修改容器内部的难度。
  8. 使用 docker stop solr && docker rm solr 先停止容器,再删除容器,为创建有挂载数据卷的新容器做准备。
  9. 创建solr镜像的新容器 docker run -d --name solr --restart=always --privileged=true -p 8983:8983 -v /opt/apps/solr:/opt/solr solr:5.5.4
    • -d:以后台进程方式运行容器。
    • --name solr:为容器指定一个名称,这里是 "solr"。
    • --restart=always:配置容器在退出时自动重启。
    • --privileged=true:容器运行在特权模式下,拥有主机的所有权限。
    • -p 6016:8983:将主机的端口 8983 映射到容器内部的端口 8983。这样可以通过主机的 8983 端口访问容器中的 Solr 服务。
    • -v /home/apps/solr:/opt/solr:将主机的 /home/apps/solr/conf 目录挂载到容器内部的 /opt/solr 目录。这样可以将主机上的 Solr 配置文件放置到该目录,使容器使用主机上的配置文件。
  10. 此时就完成了solr的创建,我们可以通过http://127.0.0.1:8983 来进行访问,看能否访问成功,这里需要注意,如果你想在虚拟机外部访问,我更建议采用非docker环境安装,用tomcat来使solr的页面生效,因为我没找到docker安装的solr能够外部访问的方法,如果有人能找到,可以在我页面下方留言,我来更新。

附上一张成功访问的图


solr的使用

solr核心的知识点不在这里赘述,大家自行学习

配置核心

  • 因为solr安装好是没有核心的,这里需要新建一个核心:
    • 方式一:
      • 进入数据卷的目录, cd /opt/apps/solr/server/solr/
      • 创建核心文件目录: mkdir test_core
      • 复制solr自带的示例,这里高版本应该会有_default,我这里版本很低没有,我就用一个自带的sample_techproducts_configs来作为示例
      • 回到可视化页面来通过图形操作创建core
    • 方式二:
      • docker exec -it --user=solr my_solr bin/solr create -c my_core 其中my_solr换成容器名称 my_core为核心名称,创建好的核心默认位置为/opt/solr/server/solr中,路径下文件夹名称即为核心名称
    • 成功创建核心效果如下:

配置中文分词器

  • 提前配置分词器,再导入数据,可以避免分词器不生效
  • 复制分词器到docker中的lib文件夹中:
    • docker cp ik-analyzer-solr5-5.x.jar solr:/opt/solr/server/lib
    • docker cp solr-analyzer-ik-5.1.0.jar solr:/opt/solr/server/lib
  • 进入容器修改managed-schema,将分词器的字段配置进去,可以把内部文件复制出来修改,修改好再复制回去
    • 添加下述配置到文件末尾:
xml 复制代码
<fieldType name="text_cn" class="solr.TextField">
     <analyzer type="index">
         <tokenizer class="org.wltea.analyzer.lucene.IKTokenizerFactory" useSmart="true" 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>
  • 重启solr docker restart solr进行分词
  • 放上一张成功的截图大功告成!

总结

因为公司有工作要做,摸鱼时间少,在草稿箱放了很久,拖到现在才总结,建议大家用最新版本的solr,相关的资源也好搜索获取,其次solr到此也只是安装了分词,在实际的生产中,常常和代码进行交互,而不是采用这种可视化界面。

还有9天就中秋国庆拉! 提前祝中秋国庆节日快乐!

相关推荐
stone.eye1 小时前
阿里云通过docker安装skywalking及elasticsearch操作流程
elasticsearch·阿里云·docker·skywalking
望获linux3 小时前
如何在望获实时 Linux & 京博航友善 NanoPC-T6 上部署 Docker
linux·运维·服务器·docker·eureka·开源软件
小白电脑技术3 小时前
Docker小雅Emby全家桶配置夸克网盘Cookie教程
docker
人工干智能3 小时前
科普:“docker”与“docker compose”
运维·docker·容器
神马都会亿点点的毛毛张3 小时前
【Docker教程】万字长文详解Docker命令
java·运维·后端·docker·容器
程序员JerrySUN4 小时前
每天设计者模式-1:基础面试题
java·linux·运维·服务器·开发语言·python·docker
hjnjmjkj6 小时前
基于windows的docker-desktop安装kubenetes以及dashboard
docker·容器·kubernetes
Libby博仙6 小时前
docker 改了镜像源为阿里云,还是下载失败
阿里云·docker·容器
百锦再7 小时前
在Linux上创建一个Docker容器并在其中执行Python脚本
linux·python·docker
钗头风7 小时前
3.Docker常用命令
运维·docker·容器