簡體   English   中英

在 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;
      "'

任何建議如何做到這一點將不勝感激!

在 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM