Je travaille avec la recherche de nom et, pour une raison quelconque, quand je fais une recherche « sam » documents contenant la requête en tant que sous-chaîne comme « samara », « samir » ou « samuel » sont retournés avec un poids apparemment égal.Comment peser fortement le texte de requête exact dans solr plutôt que les résultats le contenant comme sous-chaîne?
Est-ce juste une fonction intégrée de Solr pour analyser des mots contenant votre terme de recherche en tant que sous-chaîne? Existe-t-il un moyen d'appliquer plus de poids à la requête exacte elle-même avant de passer à des alternatives?
J'ai déjà deux fieldTypes
distincts pour pondérer le texte original plus fortement que ses synonymes, mais je n'ai pas pu trouver de solution à ce problème de sous-chaîne car il semble inhérent à Solr.
Voici ma définition de fieldType:
<fieldType class="solr.TextField" name="fullTextName" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Toute aide serait vraiment apprécié.
Je suis confus though-- je l'ai fait ce que vous avez proposé ces deux champs distincts, mais même quand dans le champ 'exactName' je précise que pour « champ de requête »(celui avec non 'EdgeNgramFilter') Je frappe toujours les documents qui ont des correspondances de sous-chaînes. Comme q = sam, et un résultat peut être samir. Pourrais-je manquer quelque chose d'autre? Merci! – Sam
Pouvez-vous poster ici la définition fieldType pour le type de champ que vous avez utilisé pour exactName? Comme je l'ai mentionné, ce type de champ ne devrait pas avoir de filtrage de jeton Ngram de bord. –
Je l'ai inclus dans le post – Sam