4
respostas

Melhorar qualidade das consultas a partir de produtos muito acessados

Com o bost conseguimos priorizar resultados a partir de um determinado termo pesquisado, ou seja, o bost é dado em um termo. Como poderíamos dar um bost em um documento já cadastrado?

Utilizando o exemplo dos produtos do curso, digamos que sabemos que um produto é mais acessado do que os demais e gostaríamos que essa informação seja levada em consideração no computo do score. Por exemplo: Sabendo previamente que o produto de "Bola de futsal" é bastante acessado, como poderíamos dar essa informação para o elasticsearch para que o score desse produto seja maior ao pesquisarmos pela tag Futebol?

4 respostas

Fala ai Jovan, tudo bem ?

Cara vi que você tá com essa dúvida a um tempo, será que já conseguiu resolver ? Se sim, compartilha conosco a solução ?

Ainda não consegui resolver, Matheus. Poderia me ajudar?

Matheus, há alguma perspectiva de resposta? Já passam de 3 semanas e não obtive resposta.

Olá Jovan,

Desculpe a demora, espero que a resposta ainda esteja em tempo.

Vamos lá. A documentação do Elasticsearch possui boosting por popularidade (https://www.elastic.co/guide/en/elasticsearch/guide/master/boosting-by-popularity.html). Eu não cheguei testar, mas procurando um pouco mais, achei a última versão da documentação: https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-function-score-query.html#function-field-value-factor. Quando comparei as duas, percebi que a funcionalidade evoluiu e te dá um controle maior para como você quer que o score final seja impactado (tipo de decay - logaritmo, raiz quadrada, linear). Há também controle para documentos cujo atributo de relevância não exista.