2017-05-24 88 views
1

我有一個使用zookeeper管理配置創建的solrcloud集合,我希望所有用於創建集合的集合配置文件。以下是我找到的選項:如何從zookeeper下載Solr收集配置

  1. 從Solrcloud UI手動複製所有文件。從動物園管理員

    solrUI->cloud->tree->/collections/<collection-name>

  2. 下載文件

    /opt/solr/server/scripts/cloud-scripts/zkcli.sh -cmd downconfig -zkhost <zk hosts>/usecasedir -confname <configuration name> -confdir <dir to download>

第二個選項沃爾德節省時間我的很多,但這裏的問題我的動物園管理員有配置的巨大的名單,我不知道哪個配置目錄用於創建集合。

有什麼方法可以找出哪些集合配置被用來創建集合?

回答

3

什麼配置被用來創建一個集合的信息存儲在ZK本身。一些bash的腳本(使用大JQ實用程序)就足以做你的需要:

  1. 發現使用的是什麼配置爲給定XXX集:

    CONFIGNAME=$(curl -L -s "http://localhost:8983/solr/admin/zookeeper?detail=true&path=/collections/XXX" | jq '.znode.data' | cut -d ":" -f2 | tr -d '}"\\') 
    
  2. 現在下載配置:

    /opt/solr/bin/solr zk downconfig -n $CONFIGNAME -d config$CONFIGNAME -z localhost:2181 
    
+0

非常感謝你的工作 –

1

配置集通常位於名爲/ configs的目錄中。如果動物園管理員致力於解決這個問題通常是在頂層,如果它被多個應用程序使用,那麼「zk chroot」通常是配置到子目錄的配置。

一旦你找到在動物園管理員的正確的位置,在configs目錄應與下集合的管理界面顯示爲「配置名稱」的名稱一個目錄> name_of_your_collection

如果你的項目使用gradle這個,向上(:我寫這個插件聲明)

https://plugins.gradle.org/plugin/com.needhamsoftware.solr-gradle

有一個額外的複雜性,從項目(您可能要檢查這些東西到版本控制)CONFIGS的上/下負載可以在一定程度通過插件來平滑然而,要知道,如果集合是usin g被管理的模式中,正在使用的acutal模式將不在schema.xml中,而是在名爲「managed-schema」的文件中

字段可能已經通過Schema Rest API添加,所以「用於創建集合的文件」在這方面有點模糊,但是managed_schema可以重命名爲schema.xml,如果需要,solr config可以修改爲take things out of managed模式。