حدد Elasticsearch مجالات معينة

Hdd Elasticsearch Mjalat M Ynt



سيعيد Elasticsearch افتراضيًا جميع الحقول الموجودة في المستند عند إجراء استعلام بحث. يتم تحديد ذلك من خلال المعلمة _source ، والتي تحتوي على جميع البيانات المخزنة في السجل أثناء الفهرسة.

curl -XGET 'http://localhost:9200/netflix/_doc/HXYz_IIBLbuC0z3qKeN2?pretty' -H 'kbn-xsrf: إعداد التقارير'

انتاج:







ومع ذلك ، قد لا ترغب في استرداد جميع الحقول من مستند معين. في هذا البرنامج التعليمي ، ستتعلم كيفية تحديد حقول معينة من مستند.



خيار حقول Elasticsearch

تتيح لنا معلمة الحقول استرداد حقول محددة في طلب البحث. بالإضافة إلى ذلك ، ستمكننا معلمة الحقل من جلب حقول فردية أو متعددة. يمكنك أيضًا تنسيق التواريخ وأنواع البيانات المكانية باستخدام معلمة الحقول.



على سبيل المثال ، لنفترض أننا نريد استرداد الفهرس ، والمعرف ، والعنوان ، والإفراج عن السنة ، والمدرجة ، والمدة ، وحقول التصنيف من فهرس Netflix ، يمكننا تشغيل استعلام كما هو موضح أدناه:





curl -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: إعداد التقارير' -H 'نوع المحتوى: application / json' -d '
{
'استفسار': {
'مباراة': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
} ،
'مجالات': [
'فهرس'،
'هوية شخصية'،
'لقب'،
'سنة الإصدار'،
'المدرج في'،
'المدة الزمنية'،
'تقييم'
] ،
'_source': خطأ

} '

في الطلب أعلاه ، نستخدم واجهة برمجة تطبيقات البحث للبحث في المستند بالمعرف المحدد في معلمة المطابقة.

ثم نستخدم معلمة الحقول لجلب الحقول المحددة من المستند الهدف.



لاحظ أن Elasticsearch سيتضمن افتراضيًا المعلمة _source ، التي تتكون من جميع حقول المستند. للتأكد من أننا نحضر الحقول المحددة فقط ، نقوم بإيقاف تشغيل المعلمة _source:

يجب أن يعرض الطلب أعلاه ردًا كما هو موضح:

{
'استغرق': 1 ،
'timed_out': خطأ ،
'_shards': {
'المجموع': 1 ،
'ناجح': 1 ،
'تم تخطيه': 0 ،
'فشل': 0
} ،
'يضرب': {
'المجموع': {
'القيمة': 1،
'علاقة': 'مكافئ'
} ،
'max_score': 1 ،
'يضرب': [
{
'_index': 'netflix'،
'_id': 'HXYz_IIBLbuC0z3qKeN2' ،
'_ الدرجة': 1 ،
'مجالات': {
'المدرج في': [
'الافلام الوثائقية'
] ،
'المدة الزمنية': [
'90 دقيقة'
] ،
'سنة الإصدار': [
2020
] ،
'تقييم': [
'PG-13'
] ،
'لقب': [
'ديك جونسون ميت'
]
}
}
]
}
}

يمكنك أيضًا استخدام المعلمة _source لتحديد الحقول التي سيتم إرجاعها من استعلام البحث. ويرد أدناه مثال على ذلك:

curl -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: إعداد التقارير' -H 'Content-Type: application / json' -d '
{
'_source': ['title'، 'release_year'، 'rating'، 'duration']،
'استفسار': {
'مصطلح': {
'_هوية شخصية': {
'القيمة': 'HXYz_IIBLbuC0z3qKeN2'
}
}
}

} '

في هذه الحالة ، نحدد الحقول التي نرغب في استرجاعها كمصفوفة في معامل المصدر. يجب أن يرد الطلب أعلاه الرد كما هو موضح:

{
'استغرق': 0 ،
'timed_out': خطأ ،
'_shards': {
'المجموع': 1 ،
'ناجح': 1 ،
'تم تخطيه': 0 ،
'فشل': 0
} ،
'يضرب': {
'المجموع': {
'القيمة': 1،
'علاقة': 'مكافئ'
} ،
'max_score': 1 ،
'يضرب': [
{
'_index': 'netflix'،
'_id': 'HXYz_IIBLbuC0z3qKeN2' ،
'_ الدرجة': 1 ،
'_مصدر': {
'المدة': '90 دقيقة'،
'release_year': 2020،
'تصنيف': 'PG-13' ،
'العنوان': 'مات ديك جونسون'
}
}
]
}

}

استنتاج

في هذه المقالة ، تعلمت كيفية جلب حقول محددة من طلب البحث باستخدام الحقول ومعلمات المصدر.

لمعرفة المزيد حول Elasticsearch وقدراته ، تحقق من دروسنا التعليمية حول هذا الموضوع. أنت مضمون للعثور على شيء مفيد.

شكرًا على القراءة وألاحقك في المرحلة التالية !!