(POR FAVOR) Dúvida Sobre Acentos no ElastiSearch

975 views
Skip to first unread message

Juliano Amaral

unread,
Oct 6, 2014, 6:42:28 PM10/6/14
to elastics...@googlegroups.com
Olá pessoal, boa noite, sou novo na comunidade, e gostaria de saber qual é realmente a melhor solução para lidar com problemas de acentuação no ES.

Tenho a seguinte query:
{
    "query" : {
        "multi_match": {
            "query": "informatica",
            "fields": ["nome_fantasia^10", "nome^5", "descricao"]
        }
    }
}

Porem ela me retorna resultados diferentes se eu utilizar a palavra informática com acento.

Vi vários materiais da documentation do ES, entretanto nenhum deles tem um exemplo prático ou um vídeo que realmente me faça entender.

Alguém consegue me ajudar? Tente também usar o brazilian analyser, mas não resolveu, embora a qualidade dos resultados tenha ficado melhor.

Desde já agradeço a atenção.

--

Luiz Guilherme Pais dos Santos

unread,
Oct 6, 2014, 7:35:47 PM10/6/14
to elastics...@googlegroups.com
Olá Juliano, seja bem vindo!

Para que o elasticsearch substitua os caracteres acentuados pelos caracteres correspondentes você precisa utilizar o filtro chamado asciifolding.

Aqui nesse gist tem o exemplo completo: https://gist.github.com/luizgpsantos/f9b2f57ea13e7515b48a

Abraço,
LG

--
Você recebeu essa mensagem porque está inscrito no grupo "Elasticsearch PT" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para elasticsearch-...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Luiz Guilherme
---------------------------------------------------
Busca - Globo.com
(21) 2483-6914
(21) 8333-6109

Juliano Amaral

unread,
Oct 6, 2014, 7:42:05 PM10/6/14
to elastics...@googlegroups.com
Show, resolveu aqui pra mim, muito obrigado Luiz.
Grande abraço.

Felipe Hummel

unread,
Oct 8, 2014, 10:40:12 AM10/8/14
to elastics...@googlegroups.com
Opa Juliano, a resposta do Luiz tá perfeita mas só complementando a questão do stemmer. Já tivemos alguns contratempos.

O stemmer remove um "sufixo" da palavra. No caso ele escolheu o minimal_portuguese que é o stemmer menos agressivo para a língua portuguesa. Ele tenta remover apenas os plurais das palavras. Dessa forma tanto faz buscar "carros" ou "carro".
Na maioria dos casos esse é um comportamento interessante e esperado. Mas em alguns casos de uso isso pode causar confusão no usuário que não entende por que um resultado foi retornado. 

Melhor exemplo que pude encontrar: se o usuário buscar por "palmeiras" ele trará resultados falando sobre a árvore "palmeira" ou sobre o ator Marcos Palmeira. Da mesma forma se ele buscar por "Palmeiras" (procurando pelo time) ele também verá resultados sobre a árvore e sobre o ator.

PS: não torço pro Palmeiras :)

Abraço!
Reply all
Reply to author
Forward
Message has been deleted
0 new messages