Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pencarian asinkron di Layanan Amazon OpenSearch
Dengan penelusuran asinkron untuk Amazon OpenSearch Service, Anda dapat mengirimkan kueri penelusuran yang dijalankan di latar belakang, memantau kemajuan permintaan, dan mengambil hasil di tahap selanjutnya. Anda dapat mengambil sebagian hasil karena hasil tersebut menjadi tersedia sebelum pencarian selesai. Setelah pencarian selesai, simpan hasil untuk pengambilan dan analisis nanti.
Pencarian asinkron membutuhkan OpenSearch 1.0 atau yang lebih baru, atau Elasticsearch 7.10 atau yang lebih baru.
Dokumentasi ini memberikan gambaran singkat tentang pencarian asinkron. Ini juga membahas batasan menggunakan penelusuran asinkron dengan domain OpenSearch Layanan Amazon yang dikelola daripada cluster sumber terbuka. OpenSearch Untuk dokumentasi lengkap penelusuran asinkron, termasuk setelan yang tersedia, izin, dan referensi API lengkap, lihat Pencarian asinkron
Contoh panggilan pencarian
Untuk melakukan pencarian asinkron, kirim permintaan HTTP ke _plugins/_asynchronous_search
menggunakan format berikut:
POST
opensearch-domain
/_plugins/_asynchronous_search
catatan
Jika Anda menggunakan Elasticsearch 7.10 alih-alih OpenSearch versi, ganti _plugins
dengan semua permintaan penelusuran _opendistro
asinkron.
Anda dapat menentukan opsi pencarian asinkron berikut:
Opsi | Deskripsi | Nilai default | Diperlukan |
---|---|---|---|
wait_for_completion_timeout |
Menentukan jumlah waktu yang Anda rencanakan untuk menunggu hasil. Anda dapat melihat hasil apa pun yang Anda dapatkan dalam waktu ini seperti dalam pencarian normal. Anda dapat melakukan poling hasil yang tersisa berdasarkan ID. Nilai maksimum yang diizinkan adalah 300 detik. |
1 detik |
Tidak |
keep_on_completion |
Menentukan apakah Anda ingin menyimpan hasil dalam klaster setelah pencarian selesai. Anda dapat memeriksa hasil yang disimpan di lain waktu. |
false |
Tidak |
keep_alive |
Menentukan jumlah waktu hasilnya disimpan dalam klaster. Misalnya, |
12 jam |
Tidak |
Permintaan sampel
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 } } } }
catatan
Semua parameter permintaan yang berlaku untuk kueri _search
standar yang didukung. Jika Anda menggunakan Elasticsearch 7.10 alih-alih OpenSearch versi, ganti dengan. _plugins
_opendistro
Izin pencarian asinkron
Pencarian asinkron mendukung kontrol akses berbutir halus. Untuk detail tentang pencampuran dan pencocokan izin agar sesuai dengan kasus penggunaan Anda, lihat Pencarian asinkron
Untuk domain dengan kontrol akses berbutir halus diaktifkan, Anda memerlukan izin minimum berikut untuk peran:
# 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'
Untuk domain dengan kontrol akses berbutir halus dinonaktifkan, gunakan akses IAM dan kunci rahasia untuk menandatangani semua permintaan. Anda dapat mengakses hasil dengan ID pencarian asinkron.
Pengaturan pencarian asinkron
OpenSearch memungkinkan Anda mengubah semua pengaturan pencarian asinkron yang tersedia menggunakan API_cluster/settings
Di OpenSearch Layanan, Anda hanya dapat mengubah pengaturan berikut:
-
plugins.asynchronous_search.node_concurrent_running_searches
-
plugins.asynchronous_search.persist_search_failures
Pencarian lintas klaster
Anda dapat melakukan pencarian asinkron di klaster dengan keterbatasan kecil berikut:
-
Anda dapat menjalankan pencarian asinkron hanya pada domain sumber.
-
Anda tidak dapat meminimalkan perjalanan putaran jaringan sebagai bagian dari kueri pencarian lintas-klaster.
Jika Anda mengatur koneksi antara domain-a -> domain-b
dengan alias cluster_b
dan domain-a -> domain-c
dengan alias koneksi cluster_c
, pencarian asinkron domain-a
, domain-b
, dan domain-c
sebagai berikut:
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": [] } } }
Respons
{ "id" : "Fm9pYzJyVG91U19xb0hIQUJnMHJfRFEAAAAAAAknghQ1OWVBczNZQjVEa2dMYTBXaTdEagAAAAAAAAAB", "state" : "RUNNING", "start_time_in_millis" : 1609329314796, "expiration_time_in_millis" : 1609761314796 }
Untuk informasi selengkapnya, lihat Pencarian lintas-cluster di Layanan Amazon OpenSearch .
UltraWarm
Pencarian asinkron dengan UltraWarm indeks terus berfungsi. Untuk informasi selengkapnya, lihat UltraWarm penyimpanan untuk Amazon OpenSearch Service.
catatan
Anda dapat memantau statistik pencarian asinkron di. CloudWatch Untuk daftar lengkap metrik, lihat Metrik pencarian asinkron.