minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Autor: da ElasticJeff Vestal, Jack Conradson
Na versão 8.14, a Elastic introduziu um novo recurso de pesquisa chamado “retrievers” no Elasticsearch. Continue lendo para aprender sobre sua simplicidade e eficiência e como eles podem aprimorar suas operações de pesquisa.
Retrievers são uma nova camada de abstração adicionada à API de pesquisa no Elasticsearch. Eles fornecem a facilidade de configurar pipelines de recuperação de vários estágios em uma única chamada de API _search. Essa arquitetura simplifica a lógica de pesquisa em seu aplicativo, eliminando a necessidade de diversas chamadas de API do Elasticsearch para consultas de pesquisa complexas. Também reduz a necessidade de lógica do lado do cliente, que muitas vezes requer a combinação de resultados de múltiplas consultas.
Três tipos de recuperadores estão incluídos na versão inicial. Cada recuperador é projetado para uma finalidade específica e, quando combinados, podem realizar pesquisas complexas.
Os tipos disponíveis incluem:
Para consultas tradicionais, a consulta faz parte de uma chamada geral da API de pesquisa. Os recuperadores diferem porque são projetados como entidades independentes que podem ser usadas individualmente ou facilmente combinadas. Esta abordagem modular proporciona maior flexibilidade ao projetar estratégias de busca.
Os recuperadores são projetados como parte de uma "árvore de recuperação", uma estrutura hierárquica que define as operações de pesquisa, esclarecendo sua ordem e lógica. Essa estrutura torna pesquisas complexas mais gerenciáveis, mais fáceis de entender para os desenvolvedores e permite que novos recursos sejam facilmente adicionados no futuro.
Os recuperadores oferecem suporte à composição, permitindo construir pipelines e integrar diferentes estratégias de recuperação. Isso permite testar facilmente diferentes combinações de recuperação. Eles também fornecem mais controle sobre como os documentos são pontuados e filtrados. Por exemplo, você pode especificar um limite mínimo de pontuação, aplicar filtros complexos sem afetar a pontuação e usar parâmetros como termina_after para otimização de desempenho.
Mantém a compatibilidade retroativa com elementos de consulta legados, convertendo-os automaticamente em recuperadores apropriados.
Vejamos alguns exemplos de uso de recuperadores. Usamos o conjunto de dados de amostra do IMDB.
Você pode executar o incluído caderno jupyter, importe dados do IMDB para seu projeto de pesquisa sem servidor e execute você mesmo os exemplos a seguir!
As configurações de alto nível são:
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "standard": {
- "query": {
- "term": {
- "overview": "clueless"
- }
- }
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "knn": {
- "field": "overview_dense",
- "query_vector_builder": {
- "text_embedding": {
- "model_id": ".multilingual-e5-small_linux-x86_64",
- "model_text": "clueless slackers"
- }
- },
- "k": 5,
- "num_candidates": 5
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "standard": {
- "query": {
- "text_expansion": {
- "overview_sparse": {
- "model_id": ".elser_model_2_linux-x86_64",
- "model_text": "clueless slackers"
- }
- }
- }
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
- GET /imdb_movies/_search?pretty
- {
- "retriever": {
- "rrf": {
- "retrievers": [
- {
- "standard": {
- "query": {
- "term": {
- "overview": "clueless slackers"
- }
- }
- }
- },
- {
- "knn": {
- "field": "overview_dense",
- "query_vector_builder": {
- "text_embedding": {
- "model_id": ".multilingual-e5-small_linux-x86_64",
- "model_text": "clueless slackers"
- }
- },
- "k": 5,
- "num_candidates": 5
- }
- },
- {
- "standard": {
- "query": {
- "text_expansion": {
- "overview_sparse": {
- "model_id": ".elser_model_2_linux-x86_64",
- "model_text": "clueless slackers"
- }
- }
- }
- }
- }
- ],
- "rank_window_size": 5,
- "rank_constant": 1
- }
- },
- "size": 3,
- "fields": [
- "names",
- "overview"
- ],
- "_source": false
- }
O recuperador vem com certas limitações das quais os usuários devem estar cientes. Por exemplo, usar um recuperador composto permite que apenas elementos sejam consultados. Isso força uma separação mais clara de interesses e evita a complexidade que acompanha o aninhamento excessivo ou a configuração independente. Além disso, os recuperadores filhos não devem usar elementos que restrinjam um recuperador composto a fazer parte de uma árvore de recuperação.
Essas restrições melhoram o desempenho e a capacidade de composição mesmo ao usar estratégias de recuperação complexas.
O recuperador é inicialmente lançado como uma prévia da tecnologia, portanto sua API está sujeita a alterações
Os pesquisadores representam um avanço importante na funcionalidade de pesquisa e na facilidade de uso do Elasticsearch. Eles podem ser encadeados em pipeline, com cada recuperador aplicando sua lógica e passando os resultados para o próximo item da cadeia. Os recuperadores podem melhorar significativamente a experiência de pesquisa, permitindo operações de pesquisa mais estruturadas, flexíveis e eficientes.
Os recursos a seguir fornecem mais detalhes sobre recuperadores.
Experimente você mesmo o código acima!Você pode correracompanhando notebook jupyter, importe dados do IMDB para o projeto Elastic Serverless Search!
Pronto para experimentar você mesmo?começarTeste grátis。
Quer obter a certificação Elastic?Descubra na próxima vezTreinamento de engenheiro ElasticsearchQuando começar!