Consultas semânticas

Com o índice agora equipado com embeddings ELSER, a função handle_search() em app.py pode ser alterada para pesquisar esses embeddings. Por enquanto, você verá como pesquisar apenas por meio do ELSER; posteriormente, os métodos de pesquisa anteriores serão incorporados novamente para criar uma solução combinada.

Para usar inferências ELSER ao pesquisar, o tipo de consulta text_expansion é usado. Abaixo você pode ver uma função handle_search() atualizada com esta consulta:

A consulta text_expansion recebe uma chave com o nome do campo a ser pesquisado. Sob esta chave, model_id configura qual modelo usar na pesquisa e model_text define o que pesquisar. Note que, neste caso, não há necessidade de gerar um embedding para o texto de pesquisa, pois o Elasticsearch gerencia o modelo e pode cuidar disso.

Na versão acima de handle_search() os filters foram deixados sem uso e as agregações foram omitidas. Esses dados podem ser adicionados novamente da mesma forma que foram incorporados à solução de busca de texto completo. Abaixo está uma função handle_search() atualizada que move a consulta text_expansion para dentro de uma seção bool.must , com filtros incluídos em bool.filter e agregações adicionadas como antes.

Dedique algum tempo a experimentar diferentes tipos de pesquisa. Você perceberá que, assim como ocorre com os embeddings vetoriais densos, as buscas realizadas pelo modelo ELSER funcionam melhor do que as buscas de texto completo quando as palavras exatas não aparecem nos documentos indexados.

Anteriormente

Modelo ELSER

Pronto para criar buscas de última geração?

Uma pesquisa suficientemente avançada não se consegue apenas com o esforço de uma só pessoa. O Elasticsearch é impulsionado por cientistas de dados, especialistas em operações de aprendizado de máquina, engenheiros e muitos outros que são tão apaixonados por buscas quanto você. Vamos nos conectar e trabalhar juntos para construir a experiência de busca mágica que lhe trará os resultados desejados.

Experimente você mesmo(a)