Quels analyzer pour une recherche?

Bonjour,
je souhaiterai mettre en place une recherche un peu spécifique sur mes documents.

Actuellement, j'utilise query_string sur des documents indexés avec l'analyzer french.
Ca me permet d'avoir des résultats cohérents lors des recherches avec des mots au singulier comme au pluriel.
Par ex: si je cherche "vins", ES me donne des résultats pertinents, idem avec "vin"

Cependant, j'ai un document qui contient "disneyland".
Je voudrais pouvoir le retrouver avec une recherche "disney" tout en conservant l'analyzer french.
J'ai tenté d'ajouter un wildcard, mais en faisant ça, ça fausse mes résultats pour une recherche sur "vins*".

Pourriez-vous me guider sur une solution à appliquer ?

Une solution simple serait peut-être d'ajouter un synonyme disney pour disneyland ?

Effectivement, Je pourrais aussi alimenter mes documents avec un champ "tags" qui ferait office de liste de synonymes.

Mais si on ne prend pas en compte cette solution, n'y a-t-il pas un tokenizer ou analyzer spécifique pour ce genre de cas ?
J'ai vu l'existence de n-gram, mais j'ai peur qu'il ne soit pas vraiment prévu pour cela.
Ai-je tort ?

Je viens de relire pas mal de documentation.
Il semble que j'ai les choix suivants :

  • synonym
  • stemmer override
  • ngram

je suis bien tenté d'utiliser ngram puisqu'il ne nécessite pas l'entretien d'un fichier annexe.
Cependant, je voudrais avoir votre avis sur la viabilité de ce tokenizer.

Pour compléter ma demande, mes recherches seront essentiellement des recherches d'un mots (voire jusqu'à 3 max j'imagine), un peu comme si vous alliez sur amazon pour chercher "lave-linge".

De ce que j'ai compris en lisant divers posts sur le sujet,
ngram semble etre assez gourmand en espace disque.
Etant donné que mon cas "disney" semble être assez exceptionnel,
je suis parti sur la solution que tu m'as indiqué, à savoir le synonyme.
Merci

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.