ستناقش هذه المقالة كيفية استخدام Elasticsearch multi-get API لجلب مستندات JSON متعددة بناءً على معرفاتهم. بالإضافة إلى ذلك ، يتيح لك Elasticsearch استخدام استعلام الحصول على واحد لاسترداد المستندات من الفهارس باستخدام معرفات المستندات فقط.
دعنا نستكشف.
بناء جملة الطلب
ما يلي هو بناء جملة Elasticsearch multi-get API:
الحصول على / _mget
الحصول على /
تدعم واجهة برمجة التطبيقات (API) المتعددة الفهارس التي تسمح لك بإحضار المستندات حتى لو لم تكن في نفس الفهرس.
يدعم الطلب معلمات المسار التالية:
- <الفهرس> - اسم الفهرس المراد استرجاع الوثائق منه كما هو محدد بمعرفاتها.
يمكنك أيضًا تحديد معامِلات طلب البحث الأخرى كما هو موضح:
- الأفضلية - يحدد العقدة أو الجزء المفضل.
- في الوقت الحالى - إذا تم الضبط على 'true' ، فسيتم تنفيذ العملية في الوقت الفعلي.
- ينعش - يفرض على العملية تحديث القطع المستهدفة قبل جلب المستندات المحددة.
- التوجيه - قيمة تُستخدم لتوجيه العمليات إلى جزء معين.
- حقول_المخازن - يسترجع حقول المستند المخزنة في فهرس بدلاً من المستند.
- _مصدر - قيمة منطقية تحدد ما إذا كان يجب إرجاع الحقل _source أم لا.
يتطلب الاستعلام النص الأساسي ، والذي يتضمن القيم التالية:
- المستندات - تحدد المستندات التي ترغب في جلبها. بالإضافة إلى ذلك ، يدعم هذا القسم السمات التالية:
- _هوية شخصية - معرف فريد للمستند الهدف.
- _فهرس - الفهرس الذي يحتوي على الوثيقة الهدف.
- التوجيه - مفتاح الجزء الأساسي من المستند.
- _مصدر - إذا كان هذا صحيحًا ، فإنه يشمل جميع حقول المصدر ؛ وإلا فإنه يستبعدهم.
- _ الحقول المخزنة - الحقول المخزنة التي ترغب في تضمينها.
- المعرفات - معرفات المستندات التي ترغب في جلبها.
مثال 1: إحضار مستندات متعددة من نفس الفهرس
يوضح المثال التالي كيفية استخدام Elasticsearch multi-get API لاسترداد المستندات بمعرفات محددة من فهرس Netflix:
curl -XGET 'http://localhost:9200/netflix/_mget' -H 'kbn-xsrf: إعداد التقارير' -H 'نوع المحتوى: application / json' -d '{
'مستندات': [
{
'_id': 'T3wnVoMBck2AEzXPytlJ'
} ،
{
'_id': 'W3wnVoMBck2AEzXPytlJ'
}
]
} '
يجب أن يقوم الطلب المحدد بجلب المستندات ذات المعرفات المحددة من فهرس Netflix. الناتج الناتج كما هو موضح:
{'مستندات': [
{
'_index': 'netflix'،
'_id': 'T3wnVoMBck2AEzXPytlJ' ،
'_النسخة 1،
'_seq_no': 0 ،
'_المصطلح_الأساسي': 1 ،
'وجدت': صحيح ،
'_مصدر': {
'المدة': '90 دقيقة'،
'مدرجة في': 'أفلام وثائقية'،
'البلد: الولايات المتحدة الأمريكية'،
'date_added': '25 سبتمبر 2021'،
'show_id': 's1'،
'المخرج': 'كيرستن جونسون'،
'release_year': 2020،
'تصنيف': 'PG-13' ،
'description': 'بينما يقترب والدها من نهاية حياته ، تقوم المخرجة كيرستن جونسون بتدوير موته بطرق مبتكرة وكوميدية لمساعدتهما على مواجهة ما لا مفر منه'.
'النوع': 'فيلم'،
'العنوان': 'مات ديك جونسون'
}
} ،
{
'_index': 'netflix'،
'_id': 'W3wnVoMBck2AEzXPytlJ' ،
'_النسخة 1،
'_seq_no': 12 ،
'_المصطلح_الأساسي': 1 ،
'وجدت': صحيح ،
'_مصدر': {
'البلد': 'ألمانيا ، جمهورية التشيك' ،
'show_id': 's13'،
'المخرج': 'Christian Schwochow'،
'release_year': 2021 ،
'تصنيف': 'TV-MA'،
'description': 'بعد مقتل معظم أفراد عائلتها في تفجير إرهابي ، يتم إغراء شابة دون قصد للانضمام إلى المجموعة التي قتلتهم'.
'النوع': 'فيلم'،
'العنوان': 'أنا كارل' ،
'المدة': '127 دقيقة'،
'List_in': 'دراما ، أفلام عالمية'،
'cast': 'Luna Wedler، Jannis Niewöhner، Milan Peschel، Edn Hasanović، Anna Fialová، Marlon Boess، Victor Boccard، Fleur Geffrier، Aziz Dyab، Mélanie Fouché، Elizaveta Maximová'،
'date_added': '23 أيلول (سبتمبر) 2021'
}
}
]
}
يمكننا أيضًا تبسيط الطلب من خلال وضع معرفات المستندات في مصفوفة بسيطة كما هو موضح في ما يلي:
curl -XGET 'http://localhost:9200/netflix/_mget' -H 'kbn-xsrf: إعداد التقارير' -H 'نوع المحتوى: application / json' -d '{
'ids': ['T3wnVoMBck2AEzXPytlJ'، 'W3wnVoMBck2AEzXPytlJ']
} '
يجب أن يقوم الطلب السابق بإجراء مماثل.
مثال 2: إحضار المستندات من مؤشرات متعددة
في المثال التالي ، يقوم الطلب بجلب مستندات متعددة من فهارس مختلفة كما هو موضح:
curl -XGET 'http://localhost:9200/_mget' -H 'kbn-xsrf: إعداد التقارير' -H 'نوع المحتوى: application / json' -d '{
'مستندات': [
{
'_index': 'netflix'،
'_id': 'T3wnVoMBck2AEzXPytlJ'
} ،
{
'_index': 'disney'،
'_id': '8j4wWoMB1yF5VqfaKCE4'
}
]
} '
الناتج الناتج كما هو موضح:
مثال 3: استبعاد حقول معينة
يمكننا استبعاد حقول محددة من طلب معين باستخدام معلمات source_include و source_exclude.
مثال كما هو موضح:
curl -XGET 'http://localhost:9200/_mget' -H 'kbn-xsrf: إعداد التقارير' -H 'نوع المحتوى: application / json' -d '{
'مستندات': [
{
'_index': 'netflix'،
'_id': 'T3wnVoMBck2AEzXPytlJ' ،
'_source': خطأ
} ،
{
'_index': 'netflix'،
'_id': 'T3wnVoMBck2AEzXPytlJ' ،
'_مصدر': {
'تشمل': ['المدرجة_في' ، 'إطلاق_السنة' ، 'العنوان'] ،
'استبعاد': ['وصف' ، 'نوع' ، 'تاريخ_إضافة']
}
}
]
} '
يستخدم الطلب المحدد المصدر 'التضمين والاستبعاد' لتحديد الحقول التي ترغب في استردادها في مستند معين.
الناتج الناتج كما هو موضح:
استنتاج
في هذا المنشور ، ناقشنا أساسيات العمل مع Elasticsearch multi-get API والذي يسمح لك بجلب مستندات متعددة من مصادر مختلفة بناءً على معرفاتهم. لا تتردد في استكشاف المستندات الأخرى لمزيد من المعلومات.
ترميز سعيد!