Problème de recherche avec accent

499 views
Skip to first unread message

amidos

unread,
May 22, 2012, 3:58:25 PM5/22/12
to elastics...@googlegroups.com
Salut,

Je viens d'ajouter un analyseur asciifolding au fichier de config elasticsearch.yml :
index : 
        analysis : 
                analyzer : 
                        default : 
                                tokenizer : standard 
                                filter : [standard, lowercase, asciifolding]

alors le problème c'est que si je cherche le mot clé : "sièg" avec wildcard ou prefix, ca me renvoie le doc qui contien le mot "siège",
par contre si je cherche "sièg", ca me renvoie rien ! sauf si j'utilise "query_string", or j'ai besoin de wildcard 

Merci

David Pilato

unread,
May 22, 2012, 5:35:06 PM5/22/12
to elastics...@googlegroups.com
Matches documents that have fields matching a wildcard expression (not analyzed). 

Il n'y a donc pas d'analyse quand on fait du wildcard, ce qui me semble logique car mettre un caractère * ou ? ne fait pas parti du langage naturel.

David
--
---
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/

Taieb CHARRADA

unread,
May 22, 2012, 6:06:55 PM5/22/12
to elastics...@googlegroups.com
Merci David pour votre réponse,
mais comment faire alors pour trouver un doc qui contien un mot avec accent en passant dans la requête seulement un prefix que ce soit avec ou sans accent?!


2012/5/22 David Pilato <da...@pilato.fr>



--
Taieb Charrada
élève ingénieur en 3ème année Informatique à l'ENIT
Tel : 06 52 37 18 39
E-mail : taieb.c...@gmail.com

David Pilato

unread,
May 23, 2012, 2:36:36 AM5/23/12
to elastics...@googlegroups.com
Il ne faut pas faire du wildcard mais par exemple une query text : http://www.elasticsearch.org/guide/reference/query-dsl/text-query.html

En wildcard, il faudrait chercher si?g*

À moins que je n'ai pas compris ton problème...

David


vgross

unread,
May 23, 2012, 3:10:45 AM5/23/12
to elastics...@googlegroups.com
Je pense qu'il a besoin d'utiliser un wildcard car il utilise la recherche pour un autocomplete je me trompe ? Je suis confronté au même problème...

David Pilato

unread,
May 23, 2012, 3:19:26 AM5/23/12
to elastics...@googlegroups.com
Pour autocomplete, est ce que prefix n'est pas plus adapté ?
En tout cas, c'est plus performant.


vgross

unread,
May 23, 2012, 4:05:43 AM5/23/12
to elastics...@googlegroups.com
Oui j'imagine qu'il est plus performant dans le sens ou il compare le début de la chaîne contre un wildcard avec le motif entouré de "*" qui va chercher le motif dans l'ensemble de la chaîne...

Mais pour un autocomplete, c'est quand même plus plaisant de pouvoir chercher dans l'ensemble de la chaîne et non juste sur son commencent, après c'est évidement une question de point de vue en fonction du besoin...

Après le problème n'est pas réglé car prefix est comme wildcard (not analyzed). Il va falloir se creuser un peu plus la tête :-) Si je trouve la solution je viendrai la poster ici ! 

Taieb CHARRADA

unread,
May 23, 2012, 4:52:26 AM5/23/12
to elastics...@googlegroups.com
Ah oui j'ai besoin d'utiliser wildcard car j'utilise la recherche par un mot clé (q="régi") et le probleme c'est que dès que j'ai rajouté l'analyseur à mon fichier yml, je peux seulement chercher par exemple le mot région en passant à la requête q="regio", c'est à dire sans accent !

le but au final c'est de trouver un mot avec accent en utilisant wildcard et  quelque soit le mot clé passé dans la requête (avec ou sans accent)



2012/5/23 vgross <vince...@gmail.com>

Jérôme Mainaud

unread,
May 23, 2012, 5:01:40 AM5/23/12
to elastics...@googlegroups.com
Peut-être que la solution est d'utiliser un analyseur de type NGram à l'indexation (et un analyseur simple à la recherche)
avec, éventuellement, un multi-field pour garder un champ normal et un champs pour la complétion ?

--
Jérôme Mainaud
jer...@mainaud.com
Reply all
Reply to author
Forward
0 new messages