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 Service OpenSearch
Com a pesquisa assíncrona do Amazon OpenSearch Service, você pode enviar uma consulta de pesquisa que é executada em segundo plano, monitorar o progresso 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 OpenSearch 1.0 ou posterior, ou Elasticsearch 7.10 ou posterior.
Esta documentação fornece uma breve visão geral da pesquisa assíncrona. Ele 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 de código aberto. OpenSearch Para obter a documentação completa da pesquisa assíncrona, incluindo configurações disponíveis, permissões e uma referência completa da API, consulte Pesquisa assíncrona na
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 OpenSearch versão, _plugins
substitua por _opendistro
em todas as solicitações de pesquisa assíncrona.
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 OpenSearch versão, substitua por. _plugins
_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
OpenSearch permite que você altere todas as configurações de pesquisa assíncrona_cluster/settings
Em OpenSearch Serviço, você só pode 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 Service OpenSearch .
UltraWarm
As pesquisas assíncronas com UltraWarm índices continuam funcionando. Para ter mais informações, consulte UltraWarm armazenamento para Amazon OpenSearch Service.
nota
Você pode monitorar estatísticas de pesquisa assíncrona em. CloudWatch Para obter uma lista completa de métricas, consulte Métricas de pesquisa assíncrona.