Elasticsearch - IngestNode
index.blocks.read_only | 1 benar / salah | Setel ke benar untuk membuat indeks dan metadata indeks hanya baca, salah untuk memungkinkan penulisan dan perubahan metadata. |
Terkadang kita perlu mengubah dokumen sebelum mengindeksnya. Misalnya, kami ingin menghapus bidang dari dokumen atau mengganti nama bidang lalu mengindeksnya. Ini ditangani oleh node Ingest.
Setiap node dalam cluster memiliki kemampuan untuk menyerap, tetapi juga dapat disesuaikan untuk diproses hanya oleh node tertentu.
Langkah-langkah yang Terlibat
Ada dua langkah yang terlibat dalam kerja node ingest -
- Membuat pipa
- Membuat dokumen
Buat Pipeline
Pertama buat pipeline yang berisi prosesor dan kemudian jalankan pipeline, seperti yang ditunjukkan di bawah ini -
PUT _ingest/pipeline/int-converter
{
"description": "converts the content of the seq field to an integer",
"processors" : [
{
"convert" : {
"field" : "seq",
"type": "integer"
}
}
]
}
Saat menjalankan kode di atas, kami mendapatkan hasil sebagai berikut -
{
"acknowledged" : true
}
Buat Dokumen
Selanjutnya kami membuat dokumen menggunakan konverter pipa.
PUT /logs/_doc/1?pipeline=int-converter
{
"seq":"21",
"name":"Tutorialspoint",
"Addrs":"Hyderabad"
}
Saat menjalankan kode di atas, kami mendapatkan respons seperti yang ditunjukkan di bawah ini -
{
"_index" : "logs",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 0,
"_primary_term" : 1
}
Selanjutnya kita mencari dokumen yang dibuat di atas dengan menggunakan perintah GET seperti yang ditunjukkan di bawah ini -
GET /logs/_doc/1
Saat menjalankan kode di atas, kami mendapatkan hasil sebagai berikut -
{
"_index" : "logs",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"Addrs" : "Hyderabad",
"name" : "Tutorialspoint",
"seq" : 21
}
}
Anda dapat melihat di atas bahwa 21 telah menjadi integer.
Tanpa Pipa
Sekarang kita membuat dokumen tanpa menggunakan pipeline.
PUT /logs/_doc/2
{
"seq":"11",
"name":"Tutorix",
"Addrs":"Secunderabad"
}
GET /logs/_doc/2
Saat menjalankan kode di atas, kami mendapatkan hasil sebagai berikut -
{
"_index" : "logs",
"_type" : "_doc",
"_id" : "2",
"_version" : 1,
"_seq_no" : 1,
"_primary_term" : 1,
"found" : true,
"_source" : {
"seq" : "11",
"name" : "Tutorix",
"Addrs" : "Secunderabad"
}
}
Anda dapat melihat di atas bahwa 11 adalah string tanpa pipa yang digunakan.