Elasticsearch متعدد الحصول

Elasticsearch Mt Dd Alhswl



ستناقش هذه المقالة كيفية استخدام Elasticsearch multi-get API لجلب مستندات JSON متعددة بناءً على معرفاتهم. بالإضافة إلى ذلك ، يتيح لك Elasticsearch استخدام استعلام الحصول على واحد لاسترداد المستندات من الفهارس باستخدام معرفات المستندات فقط.

دعنا نستكشف.







بناء جملة الطلب

ما يلي هو بناء جملة Elasticsearch multi-get API:



الحصول على / _mget
الحصول على / / _mget

تدعم واجهة برمجة التطبيقات (API) المتعددة الفهارس التي تسمح لك بإحضار المستندات حتى لو لم تكن في نفس الفهرس.



يدعم الطلب معلمات المسار التالية:





  1. <الفهرس> - اسم الفهرس المراد استرجاع الوثائق منه كما هو محدد بمعرفاتها.

يمكنك أيضًا تحديد معامِلات طلب البحث الأخرى كما هو موضح:

  1. الأفضلية - يحدد العقدة أو الجزء المفضل.
  2. في الوقت الحالى - إذا تم الضبط على 'true' ، فسيتم تنفيذ العملية في الوقت الفعلي.
  3. ينعش - يفرض على العملية تحديث القطع المستهدفة قبل جلب المستندات المحددة.
  4. التوجيه - قيمة تُستخدم لتوجيه العمليات إلى جزء معين.
  5. حقول_المخازن - يسترجع حقول المستند المخزنة في فهرس بدلاً من المستند.
  6. _مصدر - قيمة منطقية تحدد ما إذا كان يجب إرجاع الحقل _source أم لا.

يتطلب الاستعلام النص الأساسي ، والذي يتضمن القيم التالية:



  1. المستندات - تحدد المستندات التي ترغب في جلبها. بالإضافة إلى ذلك ، يدعم هذا القسم السمات التالية:
    • _هوية شخصية - معرف فريد للمستند الهدف.
    • _فهرس - الفهرس الذي يحتوي على الوثيقة الهدف.
    • التوجيه - مفتاح الجزء الأساسي من المستند.
    • _مصدر - إذا كان هذا صحيحًا ، فإنه يشمل جميع حقول المصدر ؛ وإلا فإنه يستبعدهم.
    • _ الحقول المخزنة - الحقول المخزنة التي ترغب في تضمينها.
  2. المعرفات - معرفات المستندات التي ترغب في جلبها.

مثال 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 والذي يسمح لك بجلب مستندات متعددة من مصادر مختلفة بناءً على معرفاتهم. لا تتردد في استكشاف المستندات الأخرى لمزيد من المعلومات.

ترميز سعيد!