Pencarian asinkron di Amazon Service OpenSearch - OpenSearch Layanan Amazon

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pencarian asinkron di Amazon Service 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 lengkap untuk penelusuran asinkron, termasuk langkah-langkah rinci dan deskripsi API, tersedia dalam dokumentasi. OpenSearch

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, 2d berarti bahwa hasilnya disimpan di dalam klaster selama 48 jam. Hasil pencarian yang disimpan akan dihapus setelah periode ini atau jika pencarian dibatalkan. Perhatikan bahwa ini termasuk waktu aktif kueri. Jika permintaan overruns saat ini, proses membatalkan kueri ini secara otomatis.

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

Respon

{ "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.