2
respostas

Dúvida com campo original

Fala galera, tenho um mapping que usa o double_metaphone para buscas fonéticas: Algumas buscas o comportamento fica um pouco espinhoso. Ex: Nome: Sebastiao Marcio Esse analisador me retorna como Score mais alto um nome do tipo: Sebastiao Mauro, em segundo lugar : Sebastiao marcio da silva, por exemplo. Pensei em manter o campo original de nome. E na hora da query Boostar esse campo. Tem como fazer isso? Vi uma propriedade: preserve_original, mas não sei como usar. Alguma luz?

2 respostas

Oi Leonardo,

Eu tomaria cuidado com buscas fonéticas pelo fato de não ter achado nenhuma implementação oficial que funciona bem em português.

Sobre seu problema em si, poderia explicar qual o problema original que esta tentando resolver e o motivo que te levou a usar a abordagem fonética?

Opa,Desculpa a demora! Consegui resolver! Aqui nós fazemos buscas por nomes, eu to usando fonética, até agora com sucesso, para buscas do tipo: Nome: Valdir da Silva Sauro. Busca: Waldir da Silva Sauro. Ele tá respondendo bem. Só que na busca fonética ele guarda o token, correto?(algo como: XDIR) E eu precisava realizar essa busca também pelo termo exato. Daí criei um campo +- assim:

"nome": {
        "type": "text",
        "store": true,
        "analyzer": "indexador_fonetico",
        "search_analyzer": "buscador_fonetico",
        "include_in_all": false,
          "fields": {
          "raw": {
            "type": "keyword",
            "index": "not_analyzed"
          }
        }
      }

Quando eu preciso fazer a busca exata eu procuro em nome.raw, e quando preciso da fonética vou em nome. Espero ter sido claro e valeu pela ajuda!