Je travaille sur Solr 4+.
J'ai plusieurs champs dans mon schéma solr avec différents types de champs solr.
La recherche sur le champ de texte et le champ de chaîne est-elle différente?
Parce que j'essaie de rechercher un champ de chaîne (qui est un champ de copie de quelques champs de facettes) qui ne fonctionne pas comme prévu. Le champ de chaîne de destination est indexé et stocké les deux.
Cependant, lorsque je modifie le champ de destination qui est un champ de texte (uniquement indexé), cela fonctionne correctement.
Pouvez-vous suggérer pourquoi cela se produit? Quelle est exactement la différence entre les champs text et string dans solr en ce qui concerne les recherches?
TextFields
a généralement un tokenizer et une analyse de texte attachés, ce qui signifie que le contenu indexé est divisé en jetons distincts lorsqu'une correspondance exacte n'est pas nécessaire - chaque mot/jeton peut être associé séparément pour décider si le document entier doit être inclus dans la réponse. .
StrFields
ne peut pas avoir de tokenization ni d'analyse/filtres appliqués, et donnera uniquement des résultats pour des correspondances exactes. Si vous avez besoin d'un StrField avec l'analyse ou les filtres appliqués, vous pouvez l'implémenter en utilisant une TextField
et une KeywordTokenizer
.
Un champ de texte général qui a des valeurs par défaut génériques et génériques pour toutes les langues: il numérote avec StandardTokenizer, supprime les mots vides des "stopwords.txt" (vides par défaut) et insensibles à la casse, et les minuscules. Au moment de la requête uniquement, il applique également des synonymes.
Le type StrField n'est pas analysé, mais indexé/stocké textuellement.