فهم Index و Mapping _ Elasticsearch

بالتأكيد! ها هي ترجمة الشرح وأمثلة لـ Index وفي: Mapping Elasticsearch

Index في Elasticsearch

إن Index in Elasticsearch يشبه قاعدة البيانات في أنظمة إدارة قواعد البيانات التقليدية(DBMS). يخزن مجموعة من الوثائق ذات الصلة. يتوافق كل منها Index عادةً مع نوع معين من البيانات في تطبيقك. على سبيل المثال ، في تطبيق التجارة الإلكترونية ، يمكنك إنشاء ملف Index لتخزين المعلومات حول المنتجات وآخر Index لتخزين معلومات حول المستخدمين والطلبات.

يتم تقسيم كل Index جزء Elasticsearch إلى أجزاء أصغر لتوزيع البيانات. تعد Shard جزءًا صغيرًا من Index ، ويمكن تخزين كل جزء على عقدة منفصلة داخل Elasticsearch مجموعة. يؤدي تقسيم البيانات إلى أجزاء إلى تحسين أداء البحث والاستعلام وتحسين قابلية تطوير النظام.

على سبيل المثال ، لإنشاء Index اسم جديد products  في Elasticsearch ، يمكنك استخدام API أو أدوات الإدارة مثل Kibana لتنفيذ الأمر التالي:

PUT /products  
{  
  "settings": {  
    "number_of_shards": 3,  
    "number_of_replicas": 2  
  }  
}  

في المثال أعلاه ، أنشأنا Index products 3 shard و 2 replica لكل منهما shard لضمان التوافر والنسخ الاحتياطي للبيانات.

 

Mapping في Elasticsearch

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

على سبيل المثال ، إذا كان لدينا حقل Index products وأردنا تحديد Mapping حقلي name(اسم المنتج) و price  (سعر المنتج) كنص وأنواع عائمة ، على التوالي ، فيمكننا تنفيذ الأمر التالي:

PUT /products/_mapping  
{  
  "properties": {  
    "name": {  
      "type": "text"  
    },  
    "price": {  
      "type": "float"  
    }  
  }  
}  

في المثال أعلاه ، قمنا بتعريف Mapping الفهرس products  ، حيث name  يحتوي الحقل على نوع البيانات text وحقل السعر الذي يحتوي على نوع البيانات float. وهذا يضمن أنه عند Elasticsearch استلام مستندات جديدة للفهرس products  ، فإنه سيخزن ويعالج name  حقلي "السعر" وفقًا لأنواع البيانات المحددة.

Index وتلعب Mapping أدوارًا حاسمة في تنظيم وإدارة البيانات في Elasticsearch. فهي تساعد Elasticsearch في فهم البيانات ومعالجتها بكفاءة ، وتحسين عمليات البحث والاستعلام ، وتوفر إمكانيات قابلية التوسع المرنة للنظام.