जियोलोकेशन सर्च का परिचय Elasticsearch

सबसे पहले, आपको अपने सर्वर पर इंस्टॉल करना होगा या इलास्टिक क्लाउड जैसी Elasticsearch क्लाउड-आधारित सेवा का उपयोग करना होगा । सुनिश्चित करें कि आपने जियोप्वाइंट प्लगइन के साथ Elasticsearch संगत संस्करण स्थापित किया है । Elasticsearch

 

जियोप्वाइंट प्लगइन स्थापित और कॉन्फ़िगर करें

Elasticsearch जियोप्वाइंट प्लगइन के माध्यम से जियोलोकेशन खोज का समर्थन करता है। इस प्लगइन को इंस्टॉल करने के लिए आप Elasticsearch प्लगइन मैनेजमेंट टूल का उपयोग कर सकते हैं।

उदाहरण के लिए, यदि आप Elasticsearch संस्करण 7.x का उपयोग कर रहे हैं, तो आप जियोप्वाइंट प्लगइन स्थापित करने के लिए निम्नलिखित कमांड चला सकते हैं:

bin/elasticsearch-plugin install ingest-geoip

जियोपॉइंट प्लगइन स्थापित करने के बाद, आपको उस फ़ील्ड के लिए "जियो_पॉइंट" डेटा प्रकार का उपयोग करने के लिए अपने इंडेक्स को कॉन्फ़िगर करना होगा जिसमें जियोलोकेशन जानकारी होगी। ऐसा करने के लिए, आप या तो मौजूदा इंडेक्स की मैपिंग को संपादित कर सकते हैं या कॉन्फ़िगर मैपिंग के साथ एक नया इंडेक्स बना सकते हैं।

 

मैपिंग में जियोलोकेशन फ़ील्ड को परिभाषित करें

अपने सूचकांक में जियोलोकेशन फ़ील्ड जोड़ें और उस फ़ील्ड के लिए मैपिंग संपादित करें। जियोलोकेशन फ़ील्ड आमतौर पर "जियो_पॉइंट" डेटा प्रकार का उपयोग करता है। मैपिंग जियोलोकेशन फ़ील्ड के लिए विशेषताओं और विकल्पों को परिभाषित करेगी, जैसे निर्देशांक की सटीकता, प्रारूप और बहुत कुछ।

उदाहरण:

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 जियो_डिस्टेंस, जियो_बाउंडिंग_बॉक्स, जियो_पॉलीगॉन इत्यादि जैसे संबंधित प्रश्नों का उपयोग कर सकते हैं।

उदाहरण: 5 किमी के दायरे में निर्देशांक(21.03405, 105.81507) के निकट स्थान खोजें।

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 आप अपने डेटा में जियोलोकेशन खोज सुविधाओं का लाभ उठा सकते हैं, जिससे जियोलोकेशन जानकारी के आधार पर सटीक और कुशल खोज सक्षम हो जाती है।