solr自定义定制自带core添加分词器,解决镜像没有权限问题

本文介绍如何使用Docker安装Solr,并配置中文分词器。包括搭建Solr环境、复制配置文件、创建及启动容器等步骤。还介绍了如何解决权限问题,确保自定义配置正确加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为solr要安装自定义的分词器
就打算在原有基础上提前放好,直接启动就有core

第一步获取默认配置

方法一

docker安装solr 这个帖子中

1、安装镜像
docker pull solr:8.11.1
2、新建目录
mkdir -p /home/apps/solr
3、复制配置文件

运行一个临时solr
docker run --name solr -d -p 8983:8983 solr:8.11.1
复制配置文件
docker cp solr:/opt/solr/ /home/apps/solr/conf
停止并删除solr
docker stop solr && docker rm solr

4、创建并启动

docker run \
-d \
--name solr \
--restart=always \
--privileged=true \
-p 6016:8983 \
-v /home/apps/solr/conf:/opt/solr \
solr:8.11.1

这么一套流程下来以后,宿主机上就有一个磁盘和容器内部互通

然后在这个solr界面上手动创建core或者在容器内用命令行solr create -c appLog创建

/var/solr/data目录下就会生成对应的core文件

然后再通过【Docker-Solr】Permission denied 帖子中管理员方式进入当前的容器内部

docker exec -it --user root solr /bin/bash

把里面的/var/solr/data目录下core文件copy出来

方法二

管理员进入容器内/opt/solr-8.11.0/server/solr/configsets路径内有俩种默认的配置文件
用想办法搞出来

在外部组装core的文件目录

这是我的core
conf文件内容如下,有需要替换managed-schema也可以在这里替换
在这里插入图片描述
data目录有个snapshot_metadata的目录,里面是空的(ps:data好像全部是空也没事,待测)

DockerFile打包镜像

原来add或者copy进去都有错误
不是Error waiting for SolrCore to be loaded on startup
就是is not available due to init failure
或者java.nio.file.AccessDeniedException: /var/solr/data/ResourceCore/data
大概率是因为启动以后加载初始化没有权限
在一篇帖子Docker持久卷没有权限(Apache Solr) 设置Dockerfile 具有命名卷中给了提示,我进行自己尝试,在copy文件中添加权限--chown=solr
解决权限

附上完整的dockerFile

FROM solr:8.11.0-slim

# 安装中文分词
WORKDIR /opt/solr/server/solr-webapp/webapp/WEB-INF/lib
ADD pinyinAnalyzer4.3.1.jar  .
ADD pinyin4j-2.5.0.jar  .
ADD ik-analyzer-8.5.0.jar   .

WORKDIR /var/solr/data/

copy --chown=solr ResourceCore  ./ResourceCore

这样构建完并启动,是可以直接找到对应的core
对应core


查阅稿子

docker安装solr
Solr - 知乎
Docker持久卷没有权限
Docker-Solr】Permission denied

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值