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
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, |
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_cluster/settings
API. 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.