Elasticsearch إزالة المجال

Elasticsearch Azalt Almjal



'عند العمل باستخدام مؤشرات 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 لإزالة حقل من مستند موجود.

شكرا للقراءة!!