

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Búsqueda asíncrona en Amazon Service OpenSearch
<a name="asynchronous-search"></a>

Con la búsqueda asíncrona de Amazon OpenSearch Service, puedes enviar una consulta de búsqueda que se ejecute en segundo plano, supervisar el progreso de la solicitud y recuperar los resultados más adelante. Puede recuperar resultados parciales, a medida que estén disponibles, antes de que se complete la búsqueda. Una vez finalizada la búsqueda, guarde los resultados para una posterior recuperación y análisis.

La búsqueda asíncrona requiere la OpenSearch versión 1.0 o una versión posterior, o Elasticsearch 7.10 o una versión posterior. 

Esta documentación proporciona una breve información general de la búsqueda asíncrona. También se analizan las limitaciones del uso de la búsqueda asíncrona con un dominio de Amazon OpenSearch Service gestionado en lugar de con un clúster de código abierto. OpenSearch [Para obtener la documentación completa sobre la búsqueda asincrónica, incluida la configuración disponible, los permisos y una referencia completa de la API, consulta la búsqueda asincrónica en la documentación.](https://docs.opensearch.org/latest/search-plugins/async/index/) OpenSearch 

## Ejemplo de llamada de búsqueda
<a name="asynchronous-search-sample"></a>

Para realizar una búsqueda asíncrona, envíe solicitudes HTTP a `_plugins/_asynchronous_search` con el siguiente formato:

```
POST opensearch-domain/_plugins/_asynchronous_search
```

**nota**  
Si utilizas Elasticsearch 7.10 en lugar de una OpenSearch versión, sustitúyela por en todas las solicitudes de búsqueda asincrónica. `_plugins` `_opendistro`

Puede especificar las siguientes opciones de búsqueda asíncrona:


| Opciones | Description (Descripción) | Predeterminado | Obligatorio | 
| --- | --- | --- | --- | 
| wait\$1for\$1completion\$1timeout |  Especifica la cantidad de tiempo durante la cual planea esperar los resultados. Puede ver los resultados que obtiene dentro de este tiempo, igual que en una búsqueda normal. Puede sondear los resultados restantes en función de un ID. El valor máximo es 300 segundos.  | 1 segundos | No | 
| keep\$1on\$1completion |  Especifica si desea guardar los resultados en el clúster una vez finalizada la búsqueda. Puede examinar los resultados almacenados más adelante.  | false | No | 
| keep\$1alive |  Especifica la cantidad de tiempo que se guarda el resultado en el clúster. Por ejemplo, `2d` significa que los resultados se almacenan en el clúster durante 48 horas. Los resultados de búsqueda guardados se eliminan después de este periodo o si se cancela la búsqueda. Tenga en cuenta que esto incluye el tiempo de ejecución de la consulta. Si la consulta sobrepasa este tiempo, el proceso cancela esta consulta automáticamente.  | 12 horas | No | 

**Solicitud de ejemplo**

```
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 los parámetros de solicitud que se aplican a una consulta `_search` estándar son compatibles. Si utilizas Elasticsearch 7.10 en lugar de una versión, sustitúyela por. OpenSearch `_plugins` `_opendistro`

## Permisos de búsqueda asíncrona
<a name="asynchronous-search-permissions"></a>

La búsqueda asíncrona admite el [control de acceso detallado](fgac.md). Para obtener más información sobre la combinación y la coincidencia de permisos para adaptarlos al caso de uso, consulte [Asynchronous search security](https://docs.opensearch.org/latest/search-plugins/async/security/).

Para los dominios con control de acceso detallado habilitado, necesita los siguientes permisos mínimos para un rol: 

```
# 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 dominios con control de acceso detallado deshabilitado, utilice el acceso de IAM y la clave secreta para firmar todas las solicitudes. Puede acceder a los resultados con el ID de búsqueda asíncrona. 

## Configuración de búsqueda asincrónica
<a name="asynchronous-search-diff"></a>

OpenSearch te permite cambiar todos los ajustes de búsqueda [asíncrona](https://docs.opensearch.org/latest/search-plugins/async/settings/) disponibles mediante la API. `_cluster/settings` En OpenSearch Service, solo puedes cambiar los siguientes ajustes: 
+ `plugins.asynchronous_search.node_concurrent_running_searches`
+ `plugins.asynchronous_search.persist_search_failures`

## Búsqueda en clústeres
<a name="asynchronous-search-ccs"></a>

Puede realizar una búsqueda asíncrona entre clústeres con las siguientes limitaciones menores:
+ Puede ejecutar una búsqueda asíncrona solo en el dominio fuente.
+ No puede minimizar los viajes de ida y vuelta de la red como parte de una consulta de búsqueda entre clústeres.

Si configura una conexión entre `domain-a -> domain-b`, con alias de conexión `cluster_b`, y `domain-a -> domain-c`, con alias de conexión `cluster_c`, realice una búsqueda asíncrona de `domain-a`, `domain-b` y `domain-c`, de la siguiente manera:

```
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": []
    }
  }
}
```

**Respuesta**

```
{
  "id" : "Fm9pYzJyVG91U19xb0hIQUJnMHJfRFEAAAAAAAknghQ1OWVBczNZQjVEa2dMYTBXaTdEagAAAAAAAAAB",
  "state" : "RUNNING",
  "start_time_in_millis" : 1609329314796,
  "expiration_time_in_millis" : 1609761314796
}
```

Para obtener más información, consulte [Búsqueda entre clústeres en Amazon Service OpenSearch](cross-cluster-search.md).

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

Las búsquedas asincrónicas con UltraWarm índices siguen funcionando. Para obtener más información, consulte [UltraWarm almacenamiento para Amazon OpenSearch Service](ultrawarm.md).

**nota**  
Puede supervisar las estadísticas de búsqueda asíncrona en. CloudWatch Para obtener una lista completa de las métricas, consulte [Métricas de búsqueda asíncrona](managedomains-cloudwatchmetrics.md#managedomains-cloudwatchmetrics-asynchronous-search).