[英]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;
"'
任何建議如何做到這一點將不勝感激!
在 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
好吧,我想出了如何做到這一點。
我從默認的一個創建了 schema.xml 並向其中添加了字段。 然后我將此文件復制到容器中,並在命令中將我的 schema.xml 復制到我的核心的 conf 文件夾中。
那做的工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.