Elasticsearch Hapus Bidang

Elasticsearch Hapus Bidang



“Saat bekerja dengan indeks Elasticsearch, Anda mungkin menemukan contoh di mana Anda perlu menghapus bidang dari dokumen yang ada. Sayangnya, Elasticsearch tidak menyediakan permintaan asli yang dapat kami gunakan untuk melakukan tindakan tersebut.

Namun, kami dapat menggunakan API pembaruan dokumen dan meneruskan skrip yang memungkinkan kami menghapus bidang berdasarkan namanya.”







CATATAN : Proses ini mengharuskan Anda memiliki pengetahuan dasar tentang skrip Elasticsearch dan API pembaruan dokumen. Jangan ragu untuk menjelajahi dokumen atau tutorial kami tentang topik tersebut untuk mempelajari lebih lanjut.



Mari selami.



Periksa Apakah Dokumen Ada

Sebelum menghapus bidang dari dokumen tertentu, ada baiknya untuk memastikan bahwa dokumen target ada di dalam indeks.





Kita dapat menggunakan API pencarian untuk mengambil dokumen target.

Misalnya, kita memiliki indeks kibana_sample_logs_data. Kami dapat mencari indeks untuk dokumen yang berisi IP tertentu.



CATATAN : Contoh di atas hanya digunakan untuk tujuan ilustrasi. Anda dapat menggunakan berbagai metode untuk memverifikasi apakah dokumen tertentu tersedia dalam indeks.

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: pelaporan' -H 'Tipe Konten: aplikasi/json' -d'
{
'ukuran': 0,
'kueri': {'cocok': {
'ip': '171.24.97.162'
}}
}'

Keluaran yang dihasilkan:

{
'mengambil': 3,
'timed_out': salah,
'_pecahan': {
'jumlah': 1,
'berhasil': 1,
'dilewati': 0,
'gagal': 0
},
'pukulan': {
'jumlah': {
'nilai': 17,
'hubungan': 'persamaan'
},
'max_score': nol,
'pukulan': []
}

}

Selanjutnya, skrip sederhana dapat menghapus bidang target dari dokumen. Mulailah dengan masuk ke konsol Kibana Anda dan jalankan perintah:

curl -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: pelaporan' -H 'Tipe Konten: aplikasi/json' -d'
{
'script': 'ctx._source.remove('\''ip'\'')'
}'

Permintaan di atas menggunakan skrip konteks yang tidak menyakitkan untuk memperbarui dokumen dan menghapus bidang 'ip' dengan ID yang ditentukan.

Keluaran:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_versi': 2,
'hasil': 'diperbarui',
'_pecahan': {
'jumlah': 2,
'berhasil': 2,
'gagal': 0
},
'_seq_no': 14074,
'_primary_term': 1
}

Setelah dokumen diperbarui, Anda dapat memverifikasi dengan menjalankan kueri.:

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_doc/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: pelaporan'

Permintaan di atas harus mengembalikan data yang disimpan dalam dokumen dengan ID yang ditentukan.

Kami dapat memverifikasi bahwa bidang IP tidak lagi ada dalam dokumen.

Kesimpulan

Dalam artikel ini, Anda mempelajari cara menggunakan kemampuan skrip Elasticsearch untuk menghapus bidang dari dokumen yang sudah ada.

Terima kasih sudah membaca!!