تم تصميم هذا البرنامج التعليمي للإصدار 5.2 من ElasticSearch. يتميز الإصدار 5 بمجموعة من التغييرات العاجلة فيما يتعلق بالاستعلام عن DSL ورسم الخرائط.
إذا كنت لا تزال تستخدم الإصدار 2.x، فيرجى إلقاء نظرة على الفرع v2 لهذا المستودع .
لقد قمت بإعداد مجموعة من الأمثلة لعرض الميزات والقوة المطلقة لـ ElasticSearch. تعتمد الكثير من المعلومات على "ElasticSearch، الدليل النهائي".
قم بتنزيل ElasticSearch وKibana هنا، ثم اتبع الخطوات البسيطة التالية:
./bin/elasticsearch
./bin/kibana
التمرين 1 بسيط جدًا والهدف منه هو التعرف على واجهة ElasticSearch RESTFul.
المواضيع:
تمرين التحميل 1
في التمرين 2، سنقوم بفهرسة الكثير من البيانات. ولتحسين الأداء، فإننا نقوم بذلك بكميات كبيرة.
تحتوي هذه البيانات على معلومات من مدونة كومبل. لقد قمت بفهرسة المعلومات التالية:
سيتم استخدام هذه البيانات في التمارين الأخرى.
قم بتحميل بيانات المدونة بكميات كبيرة
في التمرين 3، نقوم بتنفيذ بعض الاستعلامات الأساسية باستخدام استعلام ElasticSearch DSL. يعتمد DSL على JSON والاستعلامات عبارة عن عمليات بحث عن نص كامل.
إليك بعض عمليات البحث التي نجريها:
تمرين التحميل 3
في التمرين 4، سنركز على تحليل النص الكامل واللغة البشرية. سنتجاهل إمكانات قاعدة البيانات الخاصة بـ ElasticSearch ونرمي بعض النصوص عليها، ونرى كيف تقوم بترميز البيانات.
اعتمادًا على المحلل الذي تستخدمه، سيقوم ElasticSearch بترميز البيانات وتخزينها بطريقة مختلفة. لا تقلق، ستبقى البيانات الأصلية في مصدر المستند، والفهرس المقلوب هو الذي يتغير.
تمرين التحميل 4
التمرين 5 يدور حول مخطط الفهرس. يتم تسويق ElasticSearch على أنه بدون مخطط. في الواقع، سوف يخمن ElasticSearch المخطط نيابةً عنك.
سأعرض لك أمثلة حيث يتم التخمين بنجاح وأمثلة حيث لا يتم ذلك.
تمرين التحميل 5
لتجنب قيام ElasticSearch بتخمين المخطط بشكل خاطئ، يعد التعيين الصريح فكرة جيدة. سيقوم التمرين 6 بإعداد التعيين الصحيح لمثال مدونتنا وإعادة إدخال البيانات.
سيتم تعريف الأعداد الصحيحة والسلاسل وفقًا لذلك وسيكون للتاريخ التنسيق الصحيح.
سيتم استخدام التعيين الواضح في التمرين 7.
تمرين التحميل 6
سيتم الآن تنفيذ عمليتي البحث الفاشلتين في التمرين 5 مرة أخرى. بفضل التعيين الواضح، ستكون النتيجة صحيحة.
تمرين التحميل 7
في التمرين 8، سنحدد تعيينًا آخر في فهرس مدونتنا. يعامل هذا التعيين حقل "العنوان" كنص كامل فقط. لن يتم تحليل بقية السلاسل ورمزها. سيتم تخزينها "كما هي" .
سيتم استخدام هذه البيانات في التمرين 9.
تمرين التحميل 8
في التمرين 9، سأوضح لك الفرق بين عمليات البحث عن النص الكامل باستخدام الاستعلامات وتطابقات القيمة الدقيقة باستخدام الاستعلامات في وضع التصفية.
لقد تأكد التعيين الذي تم إجراؤه في التمرين 8 من وجود حقل "الكلمة الأساسية" الآن في خاصية العنوان. وهذا يعني أن الاستعلامات المتعلقة بـ "العنوان" يتم التعامل معها على أنها عمليات بحث عن نص كامل ويتم التعامل مع المرشحات المنطقية في الحقل "title.keyword" العادي على أنها مطابقات تامة للقيمة.
وفي أحد الأمثلة، سأوضح لك أيضًا كيفية الجمع بين الاستعلامات والمرشحات المتعددة.
وهذا ما سنفعله في هذا التمرين:
تمرين التحميل 9
سنقوم بإعادة رسم خريطة البيانات مرة أخرى . هذه المرة، سوف نتعامل مع خاصية "العنوان" كحقل تم تحليله. بشكل افتراضي يتم استخدام المحلل "القياسي" . نظرًا لأن بياناتنا متاحة باللغتين الهولندية والإنجليزية، فقد أضفت حقلين:
هذه هي النسخة النهائية من رسم الخرائط. سوف تستخدم الأمثلة الأخرى هذا التعيين والبيانات.
تمرين التحميل 10
يدور التمرين 11 حول تحليل النص بناءً على اللغة. كان التمرين 4 بمثابة تلميح نحو تحليل البيانات. سنقوم الآن بإجراء عمليات بحث تعتمد على تحليل اللغة.
تمرين التحميل 11
في التمرين 12، سنقوم بإنشاء فهرس "مدن" جديد يحتوي على كافة المدن الواقعة في مقاطعة فلاندرين الغربية في بلجيكا. يخزن الفهرس اسم المدينة وإحداثياتها الجغرافية.
سيتم استخدام الخرائط والبيانات الواضحة في تمارين أخرى.
تمرين التحميل 12
في التمرين السابق، قمنا بإنشاء فهرس جديد وفهرسة بعض البيانات الجغرافية. في التمرين 13، سنقوم فعليًا بإجراء عمليات بحث على هذه البيانات.
سيتم عرض استعلامين:
تمرين التحميل 13
في التمرين 14، سنقوم بتحميل البيانات إلى فهرس آخر. يسمى هذا الفهرس "السيارات" ويحتوي على معلومات مبيعات السيارات. تتبع كل معاملة المعلومات التالية:
سيتم استخدام هذه المعلومات في التمرين 15.
تمرين التحميل 14
تعد التجميعات ميزة قوية جدًا في ElasticSearch. إنها تشبه في الأساس "التجميع حسب" في SQL، ولكنها أكثر قوة. التجميعات هي السبب وراء شهرة ElasticSearch في مجتمع البيانات الضخمة وعلوم البيانات.
هذه هي التجميعات التي سننفذها في هذا التمرين:
تمرين التحميل 15