Gestion des antonymes avec une recherche Fuzzy

39 views
Skip to first unread message

vgross

unread,
May 22, 2012, 8:24:54 AM5/22/12
to elastics...@googlegroups.com
Bonjour à tous !

J'aimerais pouvoir gérer les antonymes lors d'une recherche de type "Fuzzy".

En gros, je voudrais sortir des résultats avec une recherche comprenant des fautes d'orthographes, pour cela j'utilise les requêtes de type Fuzzy mais sans oublier les antonymes, je m'explique : 

Si un utilisateur tape une recherche avec le mot "chiné" (qui correspond à une couleur), la recherche fuzzy sort des résultats comprenant le mot "chino" (qui est un style de pantalon) et c'est justement ce que je veux pas ! 

Je ne sais pas si j'utilise la bonne méthode, mais de cette manière, je n'arrive pas à trouver comment répondre à mon besoin :-/ 

Si quelqu’un de plus expérimenté pouvait me donner une piste à suivre... je ne suis sur elasticsearch que depuis 1 semaine et je suis loin d'être un kador ! Surtout que c'est la première fois que j'aie à mettre en place un moteur de recherche de ce type...

Merci à tous

Jérôme Mainaud

unread,
May 23, 2012, 5:33:17 AM5/23/12
to elastics...@googlegroups.com
Bonjour,

Personnellement, je me méfie de la recherche floue. Même si le principe est intéressant, il produit souvent du bruit qui est difficile à expliquer, ou plutôt à faire comprendre à un être humain normal.

Étant donné ton contexte, voici les pistes que j'explorerais :
  1. coupler la recherche floue avec une recherche nette avec des boost différents pour que les résultats de la recherche nette remontent avant (il y a du bruit, mais il n'est pas trop visible)
  2. utiliser les synonymes à l'indexation et à la recherche pour corriger les fautes courantes
  3. prétraiter (dans ton application) la requête pour corriger les erreurs ton traitement le traitement peut éventuellement s'appuyer sur un dictionnaire ou des requêtes floues.

Le troisième cas est de loin le plus compliqué et ne doit être envisagé que si les deux premières pistes ne sont pas suffisantes. Par exemple, le cas 1 remontera les contenus avec le mot "chino", mais apparaîtrons après ceux qui contiennent le mot "chiné". Si tes utilisateurs sont prêt à accepter cela, tu t'évites un prétraitement compliqué.

Bonne journée.


--
Jérôme Mainaud
jer...@mainaud.com



--
---
Vous pouvez également poster et consulter les réponses en anglais sur le groupe Elasticsearch https://groups.google.com/group/elasticsearch
 
Si vous avez également posté votre question sur la mailing list elasti...@googlegroups.com, merci d'indiquer ici le lien vers cette discussion pour faciliter le suivi.
 
Twitter : @ElasticsearchFR https://twitter.com/#!/ElasticsearchFR
Site web (English) : http://www.elasticsearch.org/

vgross

unread,
May 24, 2012, 5:52:56 AM5/24/12
to elastics...@googlegroups.com
Merci de ton aide ! Je vais étudier les différentes pistes que tu m'as conseiller mais je pense déjà opter pour la solution 2. On verra si l'équipe marketing s'en contentera :-)
Reply all
Reply to author
Forward
0 new messages