'عند العمل باستخدام مؤشرات Elasticearch ، قد تواجه مثيلاً تحتاج فيه إلى إزالة حقل من مستند موجود. لسوء الحظ ، لا تقدم Elasticsearch طلبًا محليًا يمكننا استخدامه لتنفيذ الإجراء المذكور.
ومع ذلك ، يمكننا استخدام واجهة برمجة تطبيقات تحديث المستندات وتمرير نص برمجي يسمح لنا بإزالة حقل بناءً على اسمه. '
ملاحظة : تتطلب هذه العملية أن يكون لديك معرفة أساسية بالبرمجة النصية Elasticsearch و API لتحديث المستندات. لا تتردد في استكشاف المستندات أو برامجنا التعليمية حول الموضوع لمعرفة المزيد.
هيا بنا نتعمق.
تحقق مما إذا كان المستند موجودًا
قبل إزالة حقل من مستند معين ، من الجيد التأكد من وجود المستند الهدف داخل الفهرس.
يمكننا استخدام واجهة برمجة تطبيقات البحث لجلب المستند الهدف.
على سبيل المثال ، افترض أن لدينا فهرس kibana_sample_logs_data. يمكننا البحث في الفهرس عن مستند يحتوي على عنوان IP محدد.
ملاحظة : يستخدم المثال أعلاه لأغراض التوضيح فقط. يمكنك استخدام طرق مختلفة للتحقق من توفر مستند معين في الفهرس.
curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: إعداد التقارير' -H 'Content-Type: application / json' -d '{
'الحجم': 0 ،
'طلب البحث': {'تطابق': {
'ip': '171.24.97.162'
}}
} '
الناتج الناتج:
{'استغرق': 3 ،
'timed_out': خطأ ،
'_shards': {
'المجموع': 1 ،
'ناجح': 1 ،
'تم تخطيه': 0 ،
'فشل': 0
} ،
'يضرب': {
'المجموع': {
'القيمة': 17،
'علاقة': 'مكافئ'
} ،
'max_score': خالية ،
'يضرب': []
}
}
بعد ذلك ، يمكن لبرنامج نصي بسيط إزالة حقل هدف من المستند. ابدأ بتسجيل الدخول إلى وحدة تحكم Kibana الخاصة بك وقم بتشغيل الأمر:
curl -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: إعداد التقارير' -H 'نوع المحتوى: application / json' -d '{
'البرنامج النصي': 'ctx._source.remove ('\' ip '\' ')'
} '
يستخدم الطلب أعلاه نصًا نصيًا لسياق غير مؤلم لتحديث المستند وإزالة حقل 'ip' بالمعرف المحدد.
انتاج:
{'_index': 'kibana_sample_data_logs' ،
'_id': '5pA49IIBkTjaZ6TtsiB5' ،
'_الإصدار 2،
'النتيجة': 'محدث' ،
'_shards': {
'المجموع': 2 ،
'ناجح': 2 ،
'فشل': 0
} ،
'_seq_no': 14074 ،
'_المصطلح_الأساسي': 1
}
بمجرد تحديث المستند ، يمكنك التحقق من خلال تشغيل الاستعلام:
curl -XGET 'http://localhost:9200/kibana_sample_data_logs/_doc/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: إعداد التقارير'يجب أن يعرض الطلب أعلاه البيانات المخزنة في المستند بالمعرف المحدد.
يمكننا التحقق من أن حقل IP لم يعد موجودًا في المستند.
استنتاج
في هذه المقالة ، تعلمت كيفية استخدام إمكانيات البرمجة النصية Elasticsearch لإزالة حقل من مستند موجود.
شكرا للقراءة!!