مقدمة في البحث عن تحديد الموقع الجغرافي في Elasticsearch

أولاً ، تحتاج إلى التثبيت Elasticsearch على الخادم الخاص بك أو استخدام خدمة قائمة على السحابة Elasticsearch مثل Elastic Cloud. تأكد من تثبيت إصدار متوافق من Elasticsearch مع المكون الإضافي GeoPoint.

 

قم بتثبيت وتكوين البرنامج المساعد GeoPoint

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

على سبيل المثال ، إذا كنت تستخدم Elasticsearch الإصدار 7.x ، فيمكنك تشغيل الأمر التالي لتثبيت ملحق GeoPoint:

bin/elasticsearch-plugin install ingest-geoip

بعد تثبيت ملحق GeoPoint ، تحتاج إلى تكوين الفهرس الخاص بك لاستخدام نوع بيانات "geo_point" للحقل الذي سيحتوي على معلومات تحديد الموقع الجغرافي. للقيام بذلك ، يمكنك إما تحرير تعيين فهرس موجود أو إنشاء فهرس جديد باستخدام التعيين المكون.

 

تحديد مجال تحديد الموقع الجغرافي في رسم الخرائط

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

مثال:

PUT /my_locations_index  
{  
  "mappings": {  
    "properties": {  
      "location": {  
        "type": "geo_point"  
      }  
    }  
  }  
}  

 

تحرير البيانات

أضف معلومات تحديد الموقع الجغرافي إلى مستنداتك. عادة ، يتم تمثيل معلومات تحديد الموقع الجغرافي كزوج من longitude والإحداثيات latitude. يمكنك الحصول على هذه المعلومات من المستخدمين باستخدام Google Maps API مصادر بيانات تحديد الموقع الجغرافي أو غيرها.

مثال:

PUT /my_locations_index/_doc/1  
{  
  "name": "Ba Dinh Square",  
  "location": {  
    "lat": 21.03405,  
    "lon": 105.81507  
  }  
}  

 

قم بإجراء بحث تحديد الموقع الجغرافي

الآن بعد أن أصبح لديك بيانات تحديد الموقع الجغرافي في Elasticsearch الفهرس الخاص بك ، يمكنك إجراء استعلامات بحث تحديد الموقع الجغرافي للعثور على مستندات بالقرب من موقع معين أو ضمن نطاق جغرافي معين. لإجراء بحث عن الموقع الجغرافي ، يمكنك استخدام Elasticsearch الاستعلامات المقابلة مثل geo_distance ، geo_bounding_box ، و geo_polygon ، إلخ.

مثال: ابحث عن مواقع بالقرب من الإحداثيات(21.03405 ، 105.81507) في دائرة نصف قطرها 5 كم.

GET /my_locations_index/_search  
{  
  "query": {  
    "geo_distance": {  
      "distance": "5km",  
      "location": {  
        "lat": 21.03405,  
        "lon": 105.81507  
      }  
    }  
  }  
}  

 

دمج Google Maps

إذا كنت تريد التكامل Google Maps مع Elasticsearch للحصول على معلومات تحديد الموقع الجغرافي من المستخدمين ، فيمكنك استخدام Google Maps API لاسترداد إحداثيات خطوط الطول والعرض بناءً على عنوان أو موقع محدد من قبل المستخدمين. بعد ذلك ، يمكنك استخدام هذه المعلومات لإضافة بيانات الموقع الجغرافي إلى Elasticsearch الفهرس الخاص بك وإجراء استعلامات بحث تحديد الموقع الجغرافي.

في الختام ، يتيح لك التكامل Google Maps مع Elasticsearch الاستفادة من ميزات البحث عن تحديد الموقع الجغرافي في بياناتك ، مما يتيح البحث الدقيق والفعال استنادًا إلى معلومات تحديد الموقع الجغرافي.