1
resposta

Dúvida quanto ao dicionário de sinônimos

Olá, estou com um problema em relação ao dicionário:

Notei que nos exemplos não foram usadas palavras compostas no dicionário, exemplo: "casas de ração"

Tem como usar esse tipo de palavras?

Ainda sobre esse tema, quando usamos a flag "operator" : "AND" como são analisados os tokens em relação ao dicionário?

Senti falta de um tópico relacionado a suggest no elasticsearch.

1 resposta

Olá Vinicius,

Se você olhar bem, no primeiro exemplo sobre analyzers (veja: https://cursos.alura.com.br/course/elasticsearch/section/5/task/4) eu usei uma frase. Não é um substantivo composto, porém é uma frase. Eu imaginei que para o Elasticsearch não faz diferença (eu procurei na internet para ver se tinha algum caso especial e não achei nada). Logo, você pode admitir que será tratado como uma frase. Eu analisei o exemplo que você usou utilizando o analyzer em português e o resultado foi:

{
  "tokens" : [ {
    "token" : "casa",
    "start_offset" : 0,
    "end_offset" : 5,
    "type" : "<ALPHANUM>",
    "position" : 1
  }, {
    "token" : "raca",
    "start_offset" : 9,
    "end_offset" : 14,
    "type" : "<ALPHANUM>",
    "position" : 3
  } ]
}

Para pé de moleque o resultado é:

{
  "tokens" : [ {
    "token" : "pé",
    "start_offset" : 0,
    "end_offset" : 2,
    "type" : "<ALPHANUM>",
    "position" : 1
  }, {
    "token" : "molequ",
    "start_offset" : 6,
    "end_offset" : 13,
    "type" : "<ALPHANUM>",
    "position" : 3
  } ]
}

Caso você queira um resultado diferente, pode usar sinônimos ou mesmo tentar escrever seu analyzer.

Se você utilizar o AND, vai forçar todos os termos estarem presentes.

Sobre "Senti falta de um tópico relacionado a suggest no elasticsearch.". Este seria um assunto para ser abordado em um capítulo único, porém o curso já estava grande para para um curso introdutório. Eu optei por deixar um para saber mais sobre Fuzzy (https://cursos.alura.com.br/course/elasticsearch/section/6/task/7). Contudo, sua sugestão é boa e vai ser considerada para a ementa de um eventual outro curso de Elasticsearch.