2011-08-24 2 views
38

Dans Apache Solr pourquoi avons-nous toujours besoin de préférer le champ de chaîne sur le champ de texte si les deux résout des fins?Apache Solr Champ ou champ de texte?

Comment la chaîne ou le texte affecte-t-il les paramètres tels que la taille d'index, la lecture d'index, la création d'index?

Répondre

83

Les champs définis par défaut dans le schéma solr sont très différents.

String stocke un mot/une phrase sous la forme d'une chaîne exacte sans effectuer de segmentation, etc. Généralement utile pour stocker des correspondances exactes, par exemple, pour la facettisation.

Text exécute typiquement la segmentation, et le traitement secondaire (tel que le boîtier inférieur, etc.). Utile pour tous les scénarios lorsque l'on veut faire correspondre une partie d'une phrase.

Si l'exemple suivant, "This is a sample sentence", est indexé sur les deux champs, nous devons chercher exactement le texte This is a sample sentence pour obtenir un succès sur le terrain string, alors qu'il peut suffire pour rechercher sample (ou même samples avec stemmning activé) à Obtenez un succès du champ text.

+0

pouvez-vous également commenter sur la taille d'index, l'index lu, la création d'index? – Rahul

+2

Vous obtiendrez une taille d'index plus grande lors de la segmentation, sa taille dépend de votre chaîne de traitement. La création d'index sera également légèrement plus lente car il y a plus de travail. La lecture/création d'index sera excellente dans tous les cas, donc ne vous inquiétez pas à moins d'approcher des millions de documents. –

+1

Je suis en train de lire des millions de documents ... j'espère que ce n'est pas un problème ... alors je vais dans le domaine des cordes car cela semble efficace dans tous les cas ET je n'ai pas besoin de tokenizers/recherche plein texte – Rahul