
Pengindeksan Elasticsearch adalah fitur penting yang memungkinkan engine bekerja dengan cepat dan akurat.
Namun, seperti yang Anda ketahui, begitu data dipetakan ke dalam indeks, data tersebut tidak dapat dimodifikasi. Untuk melakukan ini, Anda perlu mengindeks ulang data dengan modifikasi yang Anda perlukan. Proses ini dapat menyebabkan downtime, yang bukan merupakan praktik yang baik, terutama untuk service yang sudah beredar.
Untuk menghindari ini, kita dapat menggunakan alias indeks, yang memungkinkan kita untuk beralih antar indeks dengan mulus.
Cara Membuat Indeks?
Langkah pertama adalah memastikan Anda memiliki indeks yang ingin Anda perbarui datanya.
Untuk tutorial ini, kita akan memiliki indeks lama dan baru yang akan berfungsi sebagai namanya.
PUT /old_index/
{
"settings": {
"number_of_shards": 1
},
"aliases": {
"use_me": {}
},
“mappings”: {
"properties": {
"name":{
"type": "text"
},
"id":{
"type": "integer"
},
"paid": {
"type": "boolean"
}
}
}
}
Untuk user cURL, gunakan perintah yang ditambahkan:
curl -XPUT "http://localhost:9200/old_index/" -H 'Content-Type: application/json' -d'{ "settings": { "number_of_shards": 1 }, "aliases": { "use_me": {} }, "mappings": { "properties": { "name":{ "type": "text" }, "id":{ "type": "integer" }, "paid": { "type": "boolean" } } }}'
Selanjutnya, buat indeks baru yang akan kita gunakan. Copy semua pengaturan dan pemetaan dari indeks lama sebagai:
PUT /new_index
{
"settings": {
"number_of_shards": 1
},
"aliases": {
"use_me": {}
},
“mappings”: {
"properties": {
"name":{
"type": "text"
},
"id":{
"type": "integer"
},
"paid": {
"type": "object"
}
}
}
}
Berikut perintah cURL:
curl -XPUT "http://localhost:9200/new_index" -H 'Content-Type: application/json' -d'{ "settings": { "number_of_shards": 1 }, "aliases": { "use_me": {} }, "mappings": { "properties": { "name":{ "type": "text" }, "id":{ "type": "integer" }, "paid": { "type": "object" } } }}'
Memiliki pengaturan dan pemetaan di indeks baru, gunakan api indeks ulang untuk menyalin data dari indeks lama ke yang baru:
POST _reindex
{
“source”: {
"index": "old_index"
},
"dest": {
"index": "new_index"
}
}
Berikut perintah cURL:
curl -XPOST "http:/localhost:9200/_reindex" -H 'Content-Type: application/json' -d'{ "source": { "index": "old_index" }, "dest": { "index": "new_index" }}'
Sekarang, copy alias indeks lama ke yang baru menggunakan _alias api sebagai:
POST /_aliases
{
"actions" : [
{ "add" : { "index" : "new_index", "alias" : "use_me" } }
]
}
Berikut perintah cURL:
curl -XPOST "http://localhost:9200/_aliases" -H 'Content-Type: application/json' -d'{ "actions" : [ { "add" : { "index" : "new_index", "alias" : "use_me" } } ]}'
Setelah selesai, Anda sekarang dapat menghapus indeks lama, dan aplikasi akan menggunakan indeks baru (karena alias) tanpa downtime.
Kesimpulan
Setelah Anda menguasai konsep yang dibahas dalam tutorial ini, Anda akan berada dalam posisi untuk mengindeks ulang data dari indeks lama ke indeks baru.