2017-05-24 1 views
1

J'ai une collection dans solrcloud qui a été créée en utilisant la configuration gérée par zookeeper et je veux tous les fichiers de configuration de collection qui ont été utilisés pour créer la collection. Voici les options que j'ai trouvées:Comment télécharger la collection Solr collection de zookeeper

  1. Copiez manuellement tous les fichiers à partir de l'interface utilisateur de Solrcloud.

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

  2. Télécharger des fichiers de Zookeeper

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

2ème option Wold sauver mon beaucoup de temps, mais le problème ici mon Zookeeper a un énorme liste de configurations et je ne suis pas sûr quel répertoire de configuration a été utilisé pour créer la collection.

Existe-t-il un moyen de déterminer quelle configuration de collection a été utilisée pour créer une collection?

Répondre

3

L'information de quelle config a été utilisée pour créer une collection est stockée dans zk elle-même. Certains scripts bash (en utilisant la grande utilité de JQ) est suffisant pour faire ce que vous avez besoin:

  1. trouver ce que config a été utilisé pour la collection XXX donné:

    CONFIGNAME=$(curl -L -s "http://localhost:8983/solr/admin/zookeeper?detail=true&path=/collections/XXX" | jq '.znode.data' | cut -d ":" -f2 | tr -d '}"\\') 
    
  2. maintenant télécharger la configuration:

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

merci beaucoup cela a fonctionné –

1

Les ensembles de configuration se trouvent généralement dans un répertoire appelé/configs. Si le zookeeper est dédié à solr, il est généralement au niveau supérieur, s'il est utilisé par plusieurs applications, il est commun à "zk chroot" les configs à un sous-répertoire.

Une fois que vous trouver le bon emplacement dans Zookeeper, un répertoire dans le répertoire configs doit correspondre au nom indiqué comme « config-name » dans l'interface utilisateur d'administration sous Collections> name_of_your_collection

Si votre projet utilise gradle, vers le haut/charge vers le bas de configs du projet (où vous pouvez vérifier ces choses dans le contrôle de version) peut être lissée quelque peu par un plug-in (disclaimer: je l'ai écrit ce plugin)

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

Il y a une complication supplémentaire soyez conscient cependant, si la collection est usin g schéma géré, le schéma actif utilisé ne sera pas dans schema.xml, mais dans un fichier appelé "schéma-géré"

Les champs peuvent avoir été ajoutés via le Schema Rest API, ainsi "les fichiers utilisés pour créer la collection" sont un peu flou à cet égard, mais le managed_schema peut être renommé en schema.xml et la configuration de solr modifiée en mode take things out of managed si vous le souhaitez.