Pencarian Elastik

Elasticsearch Reindex Semua Indeks dan Periksa Statusnya

Elasticsearch Reindex Semua Indeks dan Periksa Statusnya
Semasa anda menggunakan pangkalan data, anda pasti perlu membuat perubahan seperti menambahkan, membuang, dan mengubah data.

Apabila anda mengubah data dalam indeks Elasticsearch, data boleh menyebabkan downtime apabila fungsinya selesai dan data akan dimasukkan kembali.

Tutorial ini akan memberi anda kaedah yang lebih baik untuk mengemas kini indeks tanpa mengalami downtime dengan sumber data yang ada. Menggunakan API pengindeksan semula Elasticsearch, kami akan menyalin data dari sumber tertentu ke sumber lain.

Mari kita mulakan.

NOTA: Sebelum kita memulakan, operasi pengindeksan semula memerlukan banyak sumber, terutama pada indeks besar. Untuk meminimumkan masa yang diperlukan untuk Reindexing, nonaktifkan number_of_replicas dengan menetapkan nilai ke 0 dan aktifkan setelah proses selesai.

Dayakan Medan _Source

Operasi Reindexing memerlukan medan sumber diaktifkan pada semua dokumen dalam indeks sumber. Perhatikan bahawa medan sumber tidak diindeks dan tidak dapat dicari tetapi berguna untuk pelbagai permintaan.

Aktifkan medan _Source dengan menambahkan entri seperti yang ditunjukkan di bawah:

PUT indeks_1

"Pemetaan":
"_sumber":
"diaktifkan": benar


Reindex Semua Dokumen

Untuk mengindeks semula dokumen, kita perlu menentukan sumber dan tujuan. Sumber dan tujuan dapat berupa indeks, alias indeks, dan aliran data yang ada. Anda boleh menggunakan indeks dari kelompok tempatan atau jarak jauh.

NOTA: Agar pengindeksan berjaya berlaku, sumber dan destinasi tidak boleh serupa. Anda juga mesti mengkonfigurasi tujuan seperti yang diperlukan sebelum Reindexing kerana tidak menerapkan tetapan dari sumber atau templat yang berkaitan.

Sintaks umum untuk Reindexing adalah seperti:

POST / _reindex

Mari kita mulakan dengan membuat dua indeks. Yang pertama akan menjadi sumber, dan yang lain akan menjadi tujuan.

PUT / sumber_indeks

"tetapan": "number_of_replicas": 0, "number_of_shards": 1,
"pemetaan": "_source": "enabled": true, "aliases":
"alias_1": ,
"alias_2":
"filter": "term":
"pengguna.id ":" kibana "
, "routing": "1"


Perintah cURL adalah:

curl -XPUT "http: // localhost: 9200 / source_index" -H 'Content-Type: application / json' -d '"setting": "number_of_replicas": 0, "number_of_shards": 1, "pemetaan" : "_source": "enabled": true, "aliases": "alias_1": , "alias_2": "filter": "term": "pengguna.id ":" kibana "," routing ":" 1 " '

Sekarang untuk indeks tujuan (anda boleh menggunakan arahan di atas dan mengubah beberapa perkara atau menggunakan yang diberikan di bawah):

PUT / destinasi_index

"tetapan": "number_of_replicas": 0, "number_of_shards": 1,
"pemetaan": "_source": "enabled": true, "aliases":
"alias_3": ,
"alias_4":
"filter": "term":
"pengguna.id ":" kibana "
, "routing": "1"


Seperti biasa, pengguna cURL boleh menggunakan arahan:

curl -XPUT "http: // localhost: 9200 / destination_index" -H 'Content-Type: application / json' -d '"settings": "number_of_replicas": 0, "number_of_shards": 1, "pemetaan" : "_source": "enabled": true, "aliases": "alias_3": , "alias_4": "filter": "term": "pengguna.id ":" kibana "," routing ":" 1 " '

Sekarang, kita mempunyai indeks yang ingin kita gunakan, kita kemudian dapat melanjutkan untuk memasukkan kembali dokumen.

Pertimbangkan permintaan di bawah ini yang menyalin data dari source_index ke destination_index:

POST _reindex

"Sumber":
"indeks": "source_index"
,
"dest":
"indeks": "destination_index"

Perintah cURL untuk ini adalah:

curl -XPOST "http: // localhost: 9200 / _reindex" -H 'Content-Type: application / json' -d '"source": "index": ".kibana "," dest ": " index ":" destination_index " '

Melaksanakan arahan ini harus memberi anda maklumat terperinci mengenai operasi yang dijalankan.

NOTA: Source_index harus mempunyai data.


"mengambil": 2836,
"timed_out": salah,
"jumlah": 13059,
"dikemas kini": 0,
"dibuat": 13059,
"dipadam": 0,
"kumpulan": 14,
"version_conflicts": 0,
"noops": 0,
"mencuba semula":
"pukal": 0,
"cari": 0
,
"throttled_millis": 0,
"request_per_second": -1.0,
"throttled_until_millis": 0,
"kegagalan": []

Memeriksa Status Reindexing

Anda dapat melihat status operasi Reindexing dengan hanya menggunakan _tasks. Sebagai contoh, pertimbangkan permintaan di bawah:

DAPATKAN / _tugas?terperinci = benar & tindakan = * reindex & group_by = ibu bapa

Perintah cURL adalah:

curl -XGET "http: // localhost: 9200 / _tasks?terperinci = benar & tindakan = * reindex & group_by = ibu bapa "

Itu akan memberi anda maklumat terperinci mengenai proses Reindexing seperti yang ditunjukkan di bawah:


"tugas":
"FTd_2iXjSXudN_Ua4tZhHg: 51847":
"node": "FTd_2iXjSXudN_Ua4tZhHg",
"id": 51847,
"type": "pengangkutan",
"action": "indeks: data / tulis / reindeks",
"status":
"jumlah": 13059,
"dikemas kini": 9000,
"dibuat": 0,
"dipadam": 0,
"kumpulan": 10,
"version_conflicts": 0,
"noops": 0,
"mencuba semula":
"pukal": 0,
"cari": 0
,
"throttled_millis": 0,
"request_per_second": -1.0,
"throttled_until_millis": 0
,
"description": "reindex dari [source_index] to [destination_index] [_ doc]",
"start_time_in_millis": 1611247308063,
"running_time_in_nanos": 2094157836,
"boleh dibatalkan": benar,
"tajuk":


Kesimpulannya

Kami telah merangkumi semua yang perlu anda ketahui tentang menggunakan Elasticsearch Reindexing API untuk menyalin dokumen dari satu indeks (sumber) ke indeks lain (destinasi). Walaupun terdapat lebih banyak API Reindexing, panduan ini akan membantu anda memulakannya.

Permainan Terbaik untuk Dimainkan dengan Penjejakan Tangan
Oculus Quest baru-baru ini memperkenalkan idea hebat penjejakan tangan tanpa pengawal. Dengan jumlah permainan dan aktiviti yang semakin meningkat yan...
Cara Menunjukkan Overlay OSD dalam Aplikasi dan Permainan Linux Skrin Penuh
Bermain permainan skrin penuh atau menggunakan aplikasi dalam mod skrin penuh bebas gangguan dapat memisahkan anda dari maklumat sistem yang relevan y...
5 Kad Tangkap Permainan Teratas
Kita semua telah melihat dan menyukai streaming permainan permainan di YouTube. PewDiePie, Jakesepticye, dan Markiplier hanyalah beberapa pemain terat...