2011-07-29 3 views
0

J'ai un indice Solr 1.4 dont la taille est supérieure à 20 GB. Je voudrais le diviser en 2 ou 3 index. Lucene 3.3 a la fonction PKIndexSplitter mais ne fonctionne pas avec un index Solr 1.4. Est-il possible de diviser un indice Solr 1.4?Diviser un index Solr 1.4

Merci pour l'aide Medley

Répondre

2

Non, il n'y a pas de "méthode" dans Solr 1.4 de le faire. Ce que vous devez faire est de faire deux copies de l'index. Dans chaque copie, supprimez les enregistrements. Puis optimiser.

Ensuite, vous pouvez faire une recherche distribuée sur les deux index.

Espérons que ça aide.

+0

Est-il possible de deleteByQuery en utilisant un champ et sa valeur? Je voudrais supprimer tous les enregistrements dont le champ 'leg' est égal à 6. – Medley

+0

@Medley: Oui c'est possible. Exemple pour vous: jambe: 6 Cela supprimera alors les documents correspondant à cette requête. Vous l'envoyez à l'url/update –

+0

Merci. C'est d'accord maintenant. Les deux index sont plus petits et la recherche distribuée en utilisant 'shards' fonctionne bien. – Medley

0

j'ai écrit un utilitaire de ligne de commande pour diviser un index Lucene en tessons, selon la méthode recommandée de

document.uniqueId.hashCode() % numShards

Vous pouvez saisir de GitHub: Hash-Based Index Splitter

Voir aussi Multi Pass Index Splitter, qui peut diviser votre index soit séquentiellement (par exemple [1,1,1,2,2,2,3,3,3,4,4,4]) ou round-robin (par exemple [1,2,3,4,1,2,3,4,1,2,3,4]).

Étant donné que les documents ne comprennent pas l'utilisation de ce dernier, la voici:

Usage: MultiPassIndexSplitter -out <outputDir> -num <numParts> [-seq] <inputIndex1> [<inputIndex2 ...] 
    inputIndex path to input index, multiple values are ok 
    -out ouputDir path to output directory to contain partial indexes 
    -num numParts number of parts to produce 
    -seq sequential docid-range split (default is round-robin)