

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
<a name="asynchronous-search"></a>

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 contém 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](https://docs.opensearch.org/latest/search-plugins/async/index/) documentação. OpenSearch 

## Exemplo de chamada de pesquisa
<a name="asynchronous-search-sample"></a>

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 | Description | Valor padrão  | Obrigatório | 
| --- | --- | --- | --- | 
| wait\$1for\$1completion\$1timeout |  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\$1on\$1completion |  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\$1alive |  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 runtime 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 OpenSearch versão, substitua por. `_plugins` `_opendistro`

## Permissões da pesquisa assíncrona
<a name="asynchronous-search-permissions"></a>

A pesquisa assíncrona oferece suporte ao [controle de acesso refinado](fgac.md). 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](https://docs.opensearch.org/latest/search-plugins/async/security/).

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
<a name="asynchronous-search-diff"></a>

OpenSearch permite que você altere todas as [configurações de pesquisa assíncrona](https://docs.opensearch.org/latest/search-plugins/async/settings/) disponíveis usando a API. `_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
<a name="asynchronous-search-ccs"></a>

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](cross-cluster-search.md).

## UltraWarm
<a name="asynchronous-search-ultrawarm"></a>

As pesquisas assíncronas com UltraWarm índices continuam funcionando. Para obter mais informações, consulte [UltraWarm armazenamento para Amazon OpenSearch Service](ultrawarm.md).

**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](managedomains-cloudwatchmetrics.md#managedomains-cloudwatchmetrics-asynchronous-search).