Elasticsearch Alanı Kaldır

Elasticsearch Alani Kaldir



“Elasticearch endeksleriyle çalışırken, mevcut bir belgeden bir alanı kaldırmanız gereken bir durumla karşılaşabilirsiniz. Ne yazık ki Elasticsearch, söz konusu eylemi gerçekleştirmek için kullanabileceğimiz yerel bir istek sağlamıyor.

Ancak, belge güncelleme API'sini kullanabilir ve adına göre bir alanı kaldırmamıza izin veren bir komut dosyası iletebiliriz.'







NOT : Bu işlem, Elasticsearch komut dosyası oluşturma ve belge güncelleme API'si hakkında temel bilgilere sahip olmanızı gerektirir. Daha fazla bilgi edinmek için konuyla ilgili belgeleri veya öğreticilerimizi keşfetmekten çekinmeyin.



Hadi dalalım.



Belgenin Var Olup Olmadığını Kontrol Edin

Belirli bir belgeden bir alanı kaldırmadan önce, hedef belgenin dizin içinde var olduğundan emin olmak iyidir.





Hedef belgeyi getirmek için arama API'sini kullanabiliriz.

Örneğin, kibana_sample_logs_data indeksimiz olduğunu varsayalım. Belirli bir IP içeren bir belge için dizini arayabiliriz.



NOT : Yukarıdaki örnek yalnızca gösterim amacıyla kullanılmıştır. Dizinde belirli bir belgenin mevcut olup olmadığını doğrulamak için çeşitli yöntemler kullanabilirsiniz.

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: raporlama' -H 'İçerik Türü: uygulama/json' -d'
{
'boyut': 0,
'sorgu': {'eşleşme': {
'ip': '171.24.97.162'
}}
}'

Sonuç çıktısı:

{
'aldı': 3,
'zaman aşımı': yanlış,
'_shards': {
'toplam': 1,
'başarılı': 1,
'atlandı': 0,
'başarısız': 0
},
'isabet': {
'Toplam': {
'değer': 17,
'ilişki': 'eq'
},
'max_score': boş,
'isabet': []
}

}

Ardından, basit bir komut dosyası belgeden bir hedef alanı kaldırabilir. Kibana konsolunuza giriş yaparak başlayın ve şu komutu çalıştırın:

curl -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: raporlama' -H 'İçerik Türü: uygulama/json' -d'
{
'script': 'ctx._source.remove('\''ip'\'')'
}'

Yukarıdaki istek, belgeyi güncellemek ve belirtilen kimlikle 'ip' alanını kaldırmak için ağrısız bir bağlam komut dosyası kullanır.

Çıktı:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_versiyon 2,
'result': 'güncellendi',
'_shards': {
'toplam': 2,
'başarılı': 2,
'başarısız': 0
},
'_seq_no': 14074,
'_birincil_term': 1
}

Belge güncellendikten sonra sorguyu çalıştırarak doğrulayabilirsiniz.:

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

Yukarıdaki istek, belgede depolanan verileri belirtilen kimlikle döndürmelidir.

IP alanının artık belgede olmadığını doğrulayabiliriz.

Çözüm

Bu makalede, mevcut bir belgeden bir alanı kaldırmak için Elasticsearch komut dosyası oluşturma özelliklerini nasıl kullanacağınızı öğrendiniz.

okuduğunuz için teşekkürler!!