Elasticsearch کو ہٹانے والے فیلڈ

Elasticsearch Kw An Wal Fyl



'Elasticearch انڈیکس کے ساتھ کام کرتے وقت، آپ کو ایک ایسی مثال کا سامنا کرنا پڑ سکتا ہے جہاں آپ کو کسی موجودہ دستاویز سے فیلڈ کو ہٹانے کی ضرورت ہو۔ بدقسمتی سے، Elasticsearch ایسی مقامی درخواست فراہم نہیں کرتا ہے جسے ہم مذکورہ کارروائی کو انجام دینے کے لیے استعمال کر سکتے ہیں۔

تاہم، ہم دستاویز اپ ڈیٹ API کا استعمال کر سکتے ہیں اور ایک اسکرپٹ پاس کر سکتے ہیں جو ہمیں اس کے نام کی بنیاد پر فیلڈ کو ہٹانے کی اجازت دیتا ہے۔







نوٹ : اس عمل کے لیے آپ کو Elasticsearch اسکرپٹنگ اور دستاویز اپ ڈیٹ API کا بنیادی علم ہونا ضروری ہے۔ مزید جاننے کے لیے اس موضوع پر دستاویزات یا ہمارے ٹیوٹوریلز کو بلا جھجھک دریافت کریں۔



آئیے اندر کودیں۔



چیک کریں کہ آیا دستاویز موجود ہے۔

کسی مخصوص دستاویز سے فیلڈ کو ہٹانے سے پہلے، یہ یقینی بنانا اچھا ہے کہ ہدف دستاویز انڈیکس کے اندر موجود ہے۔





ہم ٹارگٹ دستاویز کو حاصل کرنے کے لیے سرچ API استعمال کر سکتے ہیں۔

مثال کے طور پر، فرض کریں کہ ہمارے پاس kibana_sample_logs_data انڈیکس ہے۔ ہم کسی دستاویز کے لیے انڈیکس تلاش کر سکتے ہیں جس میں ایک مخصوص IP موجود ہو۔



نوٹ : اوپر دی گئی مثال صرف مثال کے مقاصد کے لیے استعمال کی گئی ہے۔ آپ اس بات کی تصدیق کے لیے مختلف طریقے استعمال کر سکتے ہیں کہ آیا انڈیکس میں کوئی مخصوص دستاویز دستیاب ہے۔

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: رپورٹنگ' -H 'مواد کی قسم: درخواست/json' -d'
{
'سائز': 0،
'query': {'match': {
'ip': '171.24.97.162'
}}
}'

نتیجہ خیز پیداوار:

{
'لیا': 3،
'timed_out': غلط،
'_شارڈز': {
'کل': 1،
'کامیاب': 1،
'چھوڑ دیا': 0،
'ناکام': 0

'ہٹ': {
'کل': {
'قدر': 17،
'relation': 'eq'

'max_score': null،
'ہٹ': []
}

}

اگلا، ایک سادہ اسکرپٹ دستاویز سے ٹارگٹ فیلڈ کو ہٹا سکتا ہے۔ اپنے کبانا کنسول میں لاگ ان کرکے شروع کریں اور کمانڈ چلائیں:

curl -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: رپورٹنگ' -H 'مواد کی قسم: درخواست/json' -d'
{
'script': 'ctx._source.remove('\'ip'\')'
}'

مندرجہ بالا درخواست دستاویز کو اپ ڈیٹ کرنے اور مخصوص ID کے ساتھ 'ip' فیلڈ کو ہٹانے کے لیے بغیر درد کے سیاق و سباق کا اسکرپٹ استعمال کرتی ہے۔

آؤٹ پٹ:

{
'_index': 'کِبانہ_نمونہ_ڈیٹا_لاگز'،
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_ورژن': 2،
'result': 'تازہ کاری شدہ'
'_شارڈز': {
'کل': 2،
'کامیاب': 2،
'ناکام': 0

'_seq_no': 14074,
'_primary_term': 1
}

دستاویز کے اپ ڈیٹ ہونے کے بعد، آپ استفسار چلا کر تصدیق کر سکتے ہیں۔:

curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_doc/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: رپورٹنگ'

مذکورہ درخواست کو دستاویز میں محفوظ کردہ ڈیٹا کو مخصوص ID کے ساتھ واپس کرنا چاہیے۔

ہم تصدیق کر سکتے ہیں کہ آئی پی فیلڈ اب دستاویز میں نہیں ہے۔

نتیجہ

اس مضمون میں، آپ نے سیکھا کہ موجودہ دستاویز سے فیلڈ کو ہٹانے کے لیے Elasticsearch اسکرپٹنگ کی صلاحیتوں کو کیسے استعمال کیا جائے۔

پڑھنے کا شکریہ!!