Εισαγωγή στην Αναζήτηση γεωγραφικής θέσης στο 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 τα αντίστοιχα ερωτήματα του 's, όπως 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 σάς επιτρέπει να αξιοποιήσετε τις δυνατότητες αναζήτησης γεωγραφικής τοποθεσίας στα δεδομένα σας, επιτρέποντας την ακριβή και αποτελεσματική αναζήτηση με βάση τις πληροφορίες γεωγραφικής τοποθεσίας.