Pesquisa assíncrona do Amazon OpenSearch Service - OpenSearch Serviço Amazon

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 do 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. A documentação completa da pesquisa assíncrona, incluindo as etapas e descrições detalhadas da API, está disponível na documentação do OpenSearch.

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, 2d significa que os resultados são armazenados no cluster por 48 horas. Os resultados da pesquisa salvos serão excluídos após esse período ou se a pesquisa for cancelada. Observe que isso inclui o tempo de execução da consulta. Se a consulta ultrapassar este tempo, o processo cancelará a consulta automaticamente.

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 via API _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 obter mais informações, consulte Pesquisa entre clusters no Amazon Service OpenSearch .

UltraWarm

As pesquisas assíncronas com índices UltraWarm continuam funcionando. Para obter 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.