2016-11-18 1 views
0

Est-il possible de gérer de grandes listes d'entiers dans des documents?Solr avec grandes listes entières

Les recherches se feront exclusivement par correspondance exacte. La plupart des documents auraient ~ 100 entrées de liste, certains seraient ~ 1k et < 10 avec jusqu'à 25k.

Addition: Quel est le meilleur schéma pour les grandes listes?

Mon idée était un champ indexé, non stocké, à valeurs multiples. Le type pourrait être TrieLongField avec precisionStep = "0". Une autre idée était de stocker les données en texte brut avec un tokenizer de mot.

Répondre

1

J'utiliser un champ entier à valeurs multiples, cela devrait donner une bonne performance:

<fieldType name="int" class="solr.TrieIntField" 
     positionIncrementGap="0" 
     precisionStep="0" 
     omitNorms="true" 
     omitTermFreqAndPositions="true"   
     multiValued="true" stored="false" 
    /> 
+0

sonne bien, merci! Avez-vous de l'expérience si Solr se comporte avec ce type de champs dans les documents? c'est-à-dire beaucoup plus d'utilisation de RAM ou d'effets similaires. – edlerd

+0

J'ai changé d'avis, vous perdez des performances en convertissant l'int en une clé de dictionnaire si vous stockez en texte brut, surtout si vous avez beaucoup de valeurs entières possibles. :) Je n'ai jamais fait ce que vous proposez mais SOLR devrait bien fonctionner ... c'est plus simple que de chercher du texte :) –