在 Docker 中 运行 时向 Solr 添加字段?
Add field to Solr when running in Docker?
我是 运行 Docker 中的 Solr。我需要将一些自定义字段添加到架构中。
这通常可以通过类似于此命令的命令来完成:
curl -X POST -H 'Content-type:application/json' --data-binary '{
"add-field":{
"name":"shelf",
"type":"myNewTxtField",
"stored":true },
"add-field":{
"name":"location",
"type":"myNewTxtField",
"stored":true },
"add-copy-field":{
"source":"shelf",
"dest":[ "location", "catchall" ]}
}' http://localhost:8983/solr/gettingstarted/schema
但我已经将我的 Solr 移动到 Docker 容器中,但我不知道如何在 docker-compose.yml.
中做同样的事情
我的 docker-compose.yml 使用以下命令启动 Solr:
solr:
image: "solr:7.3.1"
...
command: 'bash -e -c "
precreate-core mycore;
cp -r /opt/solr/server/solr/configsets/_default /opt/solr/server/solr/configsets/mycore;
cp /tmp/myconf/solr-mapping.xml /opt/solr/server/solr/configsets/mycore/conf/;
rm /opt/solr/server/solr/configsets/mycore/conf/managed-schema;
solr-foreground;
"'
如有任何建议,我们将不胜感激!
好的,我知道怎么做了。
我从默认值创建了 schema.xml 并在其中添加了字段。
然后我将这个文件复制到容器中,并在命令中将我的 schema.xml 复制到我核心的 conf 文件夹中。
成功了。
在solr图像的/opt/solr/server/solr/configsets/_default/conf文件夹中有一个文件managed-schema,它是一个xml文件,但没有扩展名。
您必须使用 cp 命令从原始容器中导出:
docker cp [your_solr_container]:/opt/solr/server/solr/configsets/_default/conf/managed-schema c:/your_folder/managed-schema
所以现在你有了基本文件,你可以添加你的新字段并从 docker compose:
传递到你的 docker 容器中
version: '3.3'
services:
solr:
image: "solr:7.3.1"
ports:
- "8983:8983"
volumes:
- ./managed-schema:/opt/solr/server/solr/configsets/_default/conf/managed-schema
entrypoint:
- docker-entrypoint.sh
- solr-precreate
- mycore
我是 运行 Docker 中的 Solr。我需要将一些自定义字段添加到架构中。 这通常可以通过类似于此命令的命令来完成:
curl -X POST -H 'Content-type:application/json' --data-binary '{
"add-field":{
"name":"shelf",
"type":"myNewTxtField",
"stored":true },
"add-field":{
"name":"location",
"type":"myNewTxtField",
"stored":true },
"add-copy-field":{
"source":"shelf",
"dest":[ "location", "catchall" ]}
}' http://localhost:8983/solr/gettingstarted/schema
但我已经将我的 Solr 移动到 Docker 容器中,但我不知道如何在 docker-compose.yml.
中做同样的事情我的 docker-compose.yml 使用以下命令启动 Solr:
solr:
image: "solr:7.3.1"
...
command: 'bash -e -c "
precreate-core mycore;
cp -r /opt/solr/server/solr/configsets/_default /opt/solr/server/solr/configsets/mycore;
cp /tmp/myconf/solr-mapping.xml /opt/solr/server/solr/configsets/mycore/conf/;
rm /opt/solr/server/solr/configsets/mycore/conf/managed-schema;
solr-foreground;
"'
如有任何建议,我们将不胜感激!
好的,我知道怎么做了。
我从默认值创建了 schema.xml 并在其中添加了字段。 然后我将这个文件复制到容器中,并在命令中将我的 schema.xml 复制到我核心的 conf 文件夹中。
成功了。
在solr图像的/opt/solr/server/solr/configsets/_default/conf文件夹中有一个文件managed-schema,它是一个xml文件,但没有扩展名。
您必须使用 cp 命令从原始容器中导出:
docker cp [your_solr_container]:/opt/solr/server/solr/configsets/_default/conf/managed-schema c:/your_folder/managed-schema
所以现在你有了基本文件,你可以添加你的新字段并从 docker compose:
传递到你的 docker 容器中version: '3.3'
services:
solr:
image: "solr:7.3.1"
ports:
- "8983:8983"
volumes:
- ./managed-schema:/opt/solr/server/solr/configsets/_default/conf/managed-schema
entrypoint:
- docker-entrypoint.sh
- solr-precreate
- mycore