2015-08-11 1 views
0

J'utilise Solr 4.3.x et il existe une stratégie de fusion nommée TieredMergePolicy (utilisée par défaut).Augmenter le nombre de segments dans Solr

Pour l'indexation, je crée beaucoup de petits documents (~ 2 Ko) et J'aimerais avoir autant de segments que possible. Il serait préférable, s'il y aura un segment par document indexé.

Comme je vois qu'il ya beaucoup de paramètres:

int maxMergeAtOnce = 10; 
long maxMergedSegmentBytes = 5*1024*1024*1024L; 
int maxMergeAtOnceExplicit = 30; 
long floorSegmentBytes = 2*1024*1024L; 
double segsPerTier = 10.0; 
double forceMergeDeletesPctAllowed = 10.0; 
boolean useCompoundFile = true; 
double noCFSRatio = 0.1; 
long maxCFSSegmentSize = Long.MAX_VALUE; 
double reclaimDeletesWeight = 2.0; 

Lequel d'entre eux que je devrais changer pour mon cas?

J'ai essayé de diminuer maxMergedSegmentBytes, floorSegmentBytes, maxMergeAtOnce mais pas d'effet ...

+0

Pourquoi dans le monde voudriez-vous un segment par document? – femtoRgon

+0

@femtoRgon, je veux exécuter des tests (pour mon projet personnalisé, basé sur un Solr) en utilisant l'index multi-segment. – MadCat45

+0

Voyant que c'est loin d'être un scénario du monde réel comme vous le ferez probablement, je serai d'accord avec @femtoRgon. Cela étant dit, vous pouvez jeter un oeil à la [NoMergePolicy] (https://lucene.apache.org/core/4_3_0/core/org/apache/lucene/index/NoMergePolicy.html) à la place, car il est fait pour ne pas fusionner des segments. – MatsLindh

Répondre

0

Vous pouvez configurer la directive MergeFactor avec une valeur très élevée dans le fichier solrconfig.xml. Ce paramètre est utilisé pour vérifier quand fusionner tous les segments de bas niveau.

<mergeFactor>1000000</mergeFactor> 

Pour indexer tous vos documents en un segment unique et distinct. Vous devez ajouter un document à la fois et effectuer une validation stricte afin que l'index soit transféré sur le disque et créer un nouveau segment pour le document d'ajout suivant. Lorsque le nombre de segments de bas niveau dépasse le paramètre mergeFactor, exécutez ensuite la fusion à l'aide de mergePolicy configuré. J'espère que cela vous aide.