SOLR Search query cas de sensibilité
Je suis en train d'utiliser un SOLR recherche pour certains enregistrements ayant Prénom en tant que;
abcd
Abcd
abcD
ABcd
abCd
abCD
Maintenant, je suis en train de faire une recherche avec le caractère générique de soutien.
J'ai besoin de comprendre comment fonctionne exactement le travail de recherche en termes d'être sensible à la casse.
par exemple, Si je passe le Prénom paramètre comme d'ab* Vs Ab*, dont les dossiers seraient-ils de retour ?
Est-il une façon de faire/de la force de la recherche sensible à la casse OU sur des cas insenstive ?
S'il vous plaît aider. Merci.
OriginalL'auteur testndtv | 2012-07-17
Vous devez vous connecter pour publier un commentaire.
Cela dépend de comment vous définissez vos champs schema.xml . Si vous utilisez LowerCaseFilterFactory lors de l'indexation et l'interrogation , puis toutes les requêtes seront insensibles à la casse. Sinon, il sera sensible à la casse.
OriginalL'auteur Parvin Gasimzade
Vous le configurer dans votre schéma. Par exemple:
signifie que le champ est considéré comme inférieur cas pour les requêtes cela donne l'impression d'être insensibles à la casse de la recherche.
OriginalL'auteur Francisco Spaeth
Par défaut des Champs définis dans la solr schéma fonctionne très différemment.
type de données
'string'
stocke un mot comme une chaîne de caractères exacte pas complète.Tout
'text_general'
effectue généralement la segmentation, et de la deuxième transformation (comme insensible à la casse et à l'ensemble de la chaîne de match). il est très Utile pour tous les scénarios quand on veut faire correspondre une partie de phrase.Si l'exemple suivant, "la Recherche dans la phrase", est indexé sur les deux champs, nous devons rechercher exactement de la Recherche dans la phrase, pour obtenir un hit de la chaîne de champ, tandis qu'il sera de retour le résultat différent dans le cas de text_general.
Ici nom du vendeur sera correspondre exactement à la chaîne de recherche, tandis que le nom du produit sera de la recherche dans l'ensemble de la phrase ci-dessus.
Exemple:
OriginalL'auteur Aman Garg
Par défaut, la valeur est parfaitement adaptée à l'encontre de la valeur stockée. Si vous voulez un champ pour être sensible à la casse, de la manière habituelle est d'avoir un type de champ qui utilise une minuscule filtres, ce qui rend tout le contenu indexé le même cas et pratiquement faire de la recherche insensible à la casse (puisque la valeur de la requête sera également mis en minuscule).
L'exemple de contenu fait dans le 'texte' et 'text_en' types de champ:
Cependant, il est peu de domaines où la automagic la manipulation de la mise en minuscules pour la wild card de requêtes peut provoquer des troubles, et MultitermQueryAnalysis a été introduit dans Solr 3.6 et 4.0 pour gérer ces situations. 3.6 et 4.0 devrait faire la wild card de la recherche automatiquement le droit chemin si le champ est déjà mis en minuscule.
Je vous suggère de le mettre en minuscule le nom de la requête (aussi longtemps que vous avez appliqué le LowerCaseFilterFactory lors de l'indexation) lors de l'utilisation de caractères génériques si vous n'obtenez pas le bon comportement pré-3.6.
OriginalL'auteur MatsLindh