As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Pesquisa assíncrona no Amazon OpenSearch Service
Com a pesquisa assíncrona do Amazon OpenSearch Service, você pode enviar uma consulta de pesquisa que é executada em segundo plano, monitorar o andamento da solicitação e recuperar os resultados em um estágio posterior. Você pode recuperar resultados parciais à medida que eles se tornam disponíveis antes da conclusão da pesquisa. Após a conclusão da pesquisa, salve os resultados para recuperação e análise posteriores.
A pesquisa assíncrona requer o OpenSearch 1.0 ou posterior ou o Elasticsearch 7.10 ou posterior.
Esta documentação fornece uma breve visão geral da pesquisa assíncrona. Também discute as limitações do uso da pesquisa assíncrona com um domínio gerenciado do Amazon OpenSearch Service em vez de um cluster do OpenSearch de código aberto. Para obter a documentação completa sobre pesquisa assíncrona, incluindo configurações disponíveis, permissões e uma referência de API completa, consulte Pesquisa assíncrona
Exemplo de chamada de pesquisa
Para executar uma pesquisa assíncrona, envie solicitações HTTP ao _plugins/_asynchronous_search
usando o seguinte formato:
POST
opensearch-domain
/_plugins/_asynchronous_search
nota
Se você estiver usando o Elasticsearch 7.10 em vez de uma versão do OpenSearch, substitua _plugins
por _opendistro
em todas as solicitações de pesquisa assíncronas.
Também é possível especificar as seguintes opções de pesquisa assíncrona:
Opções | Descrição | Valor padrão | Obrigatório |
---|---|---|---|
wait_for_completion_timeout |
Especifica o tempo que você planeja esperar pelos resultados. Você pode ver os resultados obtidos dentro deste tempo, assim como em uma pesquisa normal. Você pode consultar os resultados restantes com base em um ID. O valor máximo é 300 segundos. |
1 segundo |
Não |
keep_on_completion |
Especifica se você deseja salvar os resultados no cluster após a conclusão da pesquisa. Você poderá examinar os resultados armazenados mais tarde. |
false |
Não |
keep_alive |
Especifica por quanto tempo o resultado é salvo no cluster. Por exemplo, |
12 horas |
Não |
Exemplo de solicitação
POST _plugins/_asynchronous_search/?pretty&size=10&wait_for_completion_timeout=1ms&keep_on_completion=true&request_cache=false { "aggs": { "city": { "terms": { "field": "city", "size": 10 } } } }
nota
Todos os parâmetros de solicitação aplicáveis a uma consulta _search
padrão são aceitos. Se você estiver usando o Elasticsearch 7.10 em vez de uma versão do OpenSearch, substitua _plugins
por _opendistro
.
Permissões da pesquisa assíncrona
A pesquisa assíncrona oferece suporte ao controle de acesso refinado. Para obter detalhes sobre combinação e correspondência de permissões para se adequar ao seu caso de uso, consulte Segurança da pesquisa assíncrona
Para domínios com controle de acesso refinado habilitado, você precisa das seguintes permissões mínimas para uma função:
# Allows users to use all asynchronous search functionality asynchronous_search_full_access: reserved: true cluster_permissions: - 'cluster:admin/opensearch/asynchronous-search/*' index_permissions: - index_patterns: - '*' allowed_actions: - 'indices:data/read/search*' # Allows users to read stored asynchronous search results asynchronous_search_read_access: reserved: true cluster_permissions: - 'cluster:admin/opensearch/asynchronous-search/get'
Para domínios com controle de acesso refinado desabilitado, use o acesso do IAM e a chave secreta para assinar todas as solicitações. Você pode acessar os resultados com o ID da pesquisa assíncrona.
Configurações da pesquisa assíncrona
O OpenSearch permite alterar todas as configurações da pesquisa assíncrona_cluster/settings
. No OpenSearch Service, só é possível alterar as seguintes configurações:
-
plugins.asynchronous_search.node_concurrent_running_searches
-
plugins.asynchronous_search.persist_search_failures
Pesquisa entre clusters
Você pode executar uma pesquisa assíncrona em clusters com as seguintes limitações secundárias:
-
Você pode executar uma pesquisa assíncrona somente no domínio de origem.
-
Não é possível minimizar round trips de rede como parte de uma consulta de pesquisa entre clusters.
Se você configurar uma conexão entre domain-a -> domain-b
com alias de conexão cluster_b
e domain-a -> domain-c
com alias de conexão cluster_c
, domain-a
, pesquise assincronamente domain-b
e domain-c
da seguinte forma:
POST https://src-domain.us-east-1.es.amazonaws.com/local_index,cluster_b:b_index,cluster_c:c_index/_plugins/_asynchronous_search/?pretty&size=10&wait_for_completion_timeout=500ms&keep_on_completion=true&request_cache=false { "size": 0, "_source": { "excludes": [] }, "aggs": { "2": { "terms": { "field": "clientip", "size": 50, "order": { "_count": "desc" } } } }, "stored_fields": [ "*" ], "script_fields": {}, "docvalue_fields": [ "@timestamp" ], "query": { "bool": { "must": [ { "query_string": { "query": "status:404", "analyze_wildcard": true, "default_field": "*" } }, { "range": { "@timestamp": { "gte": 1483747200000, "lte": 1488326400000, "format": "epoch_millis" } } } ], "filter": [], "should": [], "must_not": [] } } }
Resposta
{ "id" : "Fm9pYzJyVG91U19xb0hIQUJnMHJfRFEAAAAAAAknghQ1OWVBczNZQjVEa2dMYTBXaTdEagAAAAAAAAAB", "state" : "RUNNING", "start_time_in_millis" : 1609329314796, "expiration_time_in_millis" : 1609761314796 }
Para ter mais informações, consulte Pesquisa entre clusters no Amazon OpenSearch Service.
UltraWarm
As pesquisas assíncronas com índices UltraWarm continuam funcionando. Para ter mais informações, consulte UltraWarm armazenamento para Amazon OpenSearch Service.
nota
Você pode monitorar estatísticas da pesquisa assíncrona no CloudWatch. Para obter uma lista completa de métricas, consulte Métricas de pesquisa assíncrona.