Recherche asynchrone dans Amazon Service OpenSearch - Amazon OpenSearch Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Recherche asynchrone dans Amazon Service OpenSearch

Avec la recherche asynchrone pour Amazon OpenSearch Service, vous pouvez envoyer une requête de recherche exécutée en arrière-plan, suivre la progression de la demande et récupérer les résultats ultérieurement. Vous pourrez récupérer des résultats partiels avant la fin de la recherche dès que ceux-ci seront disponibles. Au terme de la recherche, enregistrez les résultats pour les récupérer et les analyser ultérieurement.

La recherche asynchrone nécessite la OpenSearch version 1.0 ou ultérieure, ou Elasticsearch 7.10 ou une version ultérieure.

Cette documentation fournit un bref aperçu de la recherche asynchrone. Il décrit également les limites de l'utilisation de la recherche asynchrone avec un domaine Amazon OpenSearch Service géré plutôt qu'un cluster open source OpenSearch . Pour une documentation complète sur la recherche asynchrone, y compris les paramètres disponibles, les autorisations et une référence d'API complète, consultez la section Recherche asynchrone dans la documentation. OpenSearch

Exemple d'appel de recherche

Pour effectuer une recherche asynchrone, envoyez des demandes HTTP à _plugins/_asynchronous_search en utilisant le format suivant :

POST opensearch-domain/_plugins/_asynchronous_search
Note

Si vous utilisez Elasticsearch 7.10 au lieu d'une OpenSearch version, remplacez par _opendistro dans toutes les demandes _plugins de recherche asynchrones.

Vous pouvez spécifier les options de recherche asynchrone suivantes :

Options Description Valeur par défaut Obligatoire
wait_for_completion_timeout

Spécifie le délai d'attente des résultats. Vous pouvez voir tous les résultats obtenus au cours de cette période, comme pour une recherche normale. Vous pouvez interroger les résultats restants à partir d'un ID. La valeur maximale est de 300 secondes.

1 seconde Non
keep_on_completion

Indique si vous souhaitez enregistrer les résultats dans le cluster une fois la recherche terminée. Vous pourrez examiner les résultats enregistrés ultérieurement.

false Non
keep_alive

Spécifie la durée pendant laquelle le résultat est conservé dans le cluster. Par exemple, 2d signifie que les résultats sont stockés dans le cluster pendant 48 heures. Passé ce délai, ou en cas d'annulation de la recherche, les résultats enregistrés sont supprimés. Notez que cela inclut l'exécution de la requête. En cas de dépassement de ce délai, le processus annule automatiquement cette requête.

12 heures Non

Exemple de demande

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 } } } }
Note

Tous les paramètres de demande qui s'appliquent à une requête _search standard sont pris en charge. Si vous utilisez Elasticsearch 7.10 au lieu d'une OpenSearch version, remplacez-la par. _plugins _opendistro

Autorisations relatives à la recherche asynchrone

La recherche asynchrone prend en charge le contrôle précis des accès. Pour savoir comment panacher les autorisations et les adapter à votre cas d'utilisation, consultez Sécurité liée à la recherche asynchrone.

Pour les domaines où le contrôle précis des accès est activé, vous devez disposer des autorisations minimales suivantes pour un rôle :

# 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'

Pour les domaines où le contrôle précis des accès est désactivé, utilisez votre accès IAM et votre clé secrète pour signer toutes les demandes. Vous pouvez accéder aux résultats à l'aide de l'ID de recherche asynchrone.

Paramètres de recherche asynchrone

OpenSearch vous permet de modifier tous les paramètres de recherche asynchrone disponibles à l'aide de l'_cluster/settingsAPI. Dans OpenSearch Service, vous ne pouvez modifier que les paramètres suivants :

  • plugins.asynchronous_search.node_concurrent_running_searches

  • plugins.asynchronous_search.persist_search_failures

Recherche croisée entre clusters

Vous pouvez effectuer une recherche asynchrone dans différents clusters avec les limitations mineures suivantes :

  • Vous ne pouvez exécuter une recherche asynchrone que sur le domaine source.

  • Vous ne pouvez pas minimiser les allers-retours réseau dans le cadre d'une requête de recherche croisée entre clusters.

Si vous configurez une connexion entre domain-a -> domain-b avec alias de connexion cluster_b et domain-a -> domain-c avec alias de connexion cluster_c, recherchez de manière asynchrone domain-a, domain-b et domain-c comme suit :

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

Réponse

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

Pour plus d’informations, consultez Recherche entre clusters dans Amazon Service OpenSearch .

UltraWarm

Les recherches asynchrones avec UltraWarm index continuent de fonctionner. Pour plus d’informations, consultez UltraWarm stockage pour Amazon OpenSearch Service.

Note

Vous pouvez surveiller les statistiques de recherche asynchrones dans. CloudWatch Pour accéder à une liste complète des métriques , veuillez consulter Métriques de recherche asynchrone.