Saya baru mengenal ElasticSearch . Saya mencoba mencari cara menghapus data dari ElasticSearch. Saya telah menghapus indeks saya. Namun, itu tampaknya tidak benar-benar menghapus data itu sendiri. Hal-hal lain yang saya lihat menunjuk ke fitur Delete by Query . Namun, saya bahkan tidak yakin harus bertanya apa. Saya tahu indeks saya. Pada dasarnya, saya ingin mencari tahu cara melakukan
DELETE FROM [Index]
Dari PostMan di Chrome. Namun, saya tidak beruntung. Sepertinya tidak peduli apa yang saya lakukan, data tetap ada. Sejauh ini, saya telah berhasil menghapus indeks dengan menggunakan DELETE HTTP Verb di PostMan dan menggunakan url seperti:
http://localhost:9200/[indexName]
Namun, itu tampaknya tidak benar-benar menghapus data (alias dokumen) sendiri.
elasticsearch
pengguna687554
sumber
sumber
Jawaban:
Anda dapat menghapus menggunakan
cURL
atau secara visual menggunakan salah satu dari banyak alat yang dibuat oleh penggemar open source untuk Elasticsearch.Menggunakan CURL
misalnya
Anda kemudian akan menerima balasan, apakah ini berhasil atau tidak. Anda dapat menghapus seluruh indeks atau jenis dengan indeks juga, Anda dapat menghapus suatu jenis dengan meninggalkan ID dokumen seperti -
Jika Anda ingin menghapus indeks -
Jika Anda ingin menghapus lebih dari satu indeks yang mengikuti konvensi penamaan tertentu (perhatikan
*
, wildcard), -Secara visual
Ada berbagai alat seperti yang disebutkan di atas, saya tidak akan mendaftarkannya di sini tetapi saya akan menghubungkan Anda ke salah satu yang memungkinkan Anda untuk memulai langsung, terletak di sini . Alat ini disebut KOPF, untuk terhubung ke host Anda, silakan klik logo di sudut kiri atas dan masukkan URL cluster Anda.
Setelah terhubung, Anda akan dapat mengatur seluruh kluster Anda, menghapus, mengoptimalkan, dan menyetel kluster Anda.
sumber
Jika Anda perlu menghapus semua indeks, ini mungkin berguna:
Powershell:
sumber
The Dokumentasi (atau Panduan pasti ) mengatakan, bahwa Anda juga dapat menggunakan query berikutnya untuk menghapus semua indeks:
Dan ada catatan penting:
sumber
Anda harus mengirim
DELETE
permintaan keAnda juga dapat menghapus satu dokumen:
Saya sarankan Anda untuk menggunakan elastichammer .
Setelah menghapus, Anda dapat mencari jika indeks masih ada dengan URL berikut:
http://[your_host]:9200/_stats/
Semoga berhasil!
sumber
Menghapus indeks akan menghapus pemetaan dan mengetik. Anda dapat menghapus semua baris dengan kueri berikut
Namun untuk kueri di atas, Anda perlu menginstal plugin delete-by-queri pada penghapusan-by-query 2.0.0-beta1 dari Elasticsearch telah dihapus dari api utama
Untuk lebih
http://blog.appliedinformaticsinc.com/how-to-delete-elasticsearch-data-records-by-dsl-query/
sumber
sumber
Ubah
http
kehttps
jika Anda menggunakan sertifikat SSL di aplikasi Andasumber
Anda dapat menghapus indeks dengan python sebagai berikut
sumber
cara paling sederhana!
di mana
twitter
indeks dalam pencarian elastisref; https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete-by-query.html
sumber
Untuk penghapusan massal dengan kueri, Anda dapat menggunakan penghapusan khusus dengan API kueri :
Dalam riwayat, API telah dihapus dan kemudian diperkenalkan kembali
Yang menarik itu memiliki sejarah panjang.
sumber
Saya ingin menghapus indeks logstash dan mencari banyak tentang berbagai alat seperti curl. Tetapi menemukan solusinya di akhir. Masuk ke Kibana. Pergi ke tab Alat Dev dan ketik
DELETE /logstash-*
bidang permintaan dan tekan tombol panah hijau. jika Anda mendapatkan "pengakuan": true dalam respons itu berarti data telah dihapus.sumber
Untuk membuat daftar indeks
curl -L localhost:9200/_cat/indices
9200
port default [ganti port jika menggunakan port lain]Anda mungkin akan menemukan semua indeks dimulai dengan
logstash-yyyy-mm-dd
format (logstash- *)Anda dapat melihat semua indeks dan menggunakannya
Untuk menghapus indeks dan data memicu perintah berikut.
curl -XDELETE localhost:9200/index_name
(Yang akan menghapus data dan indeks keduanya).sumber
Ada banyak jawaban bagus di sini, tetapi ada juga sesuatu yang ingin saya tambahkan:
sumber
Anda dapat menghapus seluruh indeks, tipe dokumen atau data id terkait. ini adalah tiga cara:
curl -XDELETE localhost: 9200 / index_name
curl -XDELETE localhost: 9200 / index_name / doc-type
curl -XDELETE localhost: 9200 / index_name / doc-type / documentId
dan jika Anda ingin menghapus semua indeks maka gunakan wildcard.
sumber
Anda juga dapat menghapus indeks menggunakan tindakan DELETE di 'elasticsearch head' ( plugin Chrome ). Tambahkan ke chrome Anda dan hubungkan ke host Anda. Di sana Anda akan menemukan semua indeks Anda dan jika Anda mengklik tombol tindakan di bawah indeks yang ingin Anda hapus, Anda akan menemukan opsi DELETE di drop down. klik di atasnya dan masukkan DELETE di jendela sembul. Indeks Anda akan dihapus. Ekstensi 'kepala elasticsearch' adalah cara mudah untuk melihat dan mengelola indeks dan data Anda.
sumber
Anda dapat menggunakan kepala elastik ekstensi chrome untuk menghapus indeks
sumber
Anda dapat menghapus indeks dengan Kibana Console:
Untuk mendapatkan semua indeks:
Untuk menghapus indeks tertentu:
sumber
Anda dapat menghapus satu atau lebih indeks, yang benar-benar menghapus file mereka dari disk . Sebagai contoh:
Di mana
$INDEXNAME
bisa berupa nama indeks (misalnyausers_v2
), indeks N dipisahkan dengan koma (misalnyausers_v2,users_v3
). Pola indeks (misalnyausers_*
) atau_all
, juga berfungsi, kecuali jika diblokir pada konfigurasi viaaction.destructive_requires_name: true
.Menghapus dokumen individual dimungkinkan, tetapi ini tidak akan segera menghapusnya . Penghapusan hanya penghapusan lunak, dan dokumen benar-benar dihapus selama penggabungan segmen . Anda akan menemukan banyak detail tentang segmen dan penggabungan dalam presentasi ini . Ini tentang Solr, tetapi gabungan dari Lucene, jadi Anda memiliki opsi yang sama di Elasticsearch.
Kembali ke API, Anda dapat menghapus setiap dokumen berdasarkan ID (berikan nilai perutean jika Anda indeks dengan perutean):
Atau dengan kueri:
sumber
Katakanlah saya perlu menghapus indeks
filebeat-7.6.2-2020.04.30-000001
dan saya melakukannya dengan menggunakan opsi DELETE (curl -X DELETE "localhost:9200/filebeat-7.6.2-2020.04.30-000001?pretty"
) dan menghasilkan masalah otentikasi seperti di bawah ini;Di sini Anda harus mengautentikasi permintaan ikal menggunakan nama pengguna dan kata sandi yang Anda berikan untuk Elasticsearch. Cobalah
curl -X DELETE -u myelasticuser:myelasticpassword "localhost:9200/filebeat-7.6.2-2020.04.30-000001?pretty"
akan menghasilkan {"diakui": true} .
sumber