Introducere în căutarea de geolocalizare în Elasticsearch

În primul rând, trebuie să instalați Elasticsearch pe serverul dvs. sau să utilizați un Elasticsearch serviciu bazat pe cloud, cum ar fi Elastic Cloud. Asigurați-vă că instalați o versiune compatibilă Elasticsearch cu pluginul GeoPoint.

 

Instalați și configurați pluginul GeoPoint

Elasticsearch acceptă căutarea de localizare geografică prin pluginul GeoPoint. Pentru a instala acest plugin, puteți utiliza Elasticsearch instrumentul de gestionare a pluginurilor.

De exemplu, dacă utilizați Elasticsearch versiunea 7.x, puteți rula următoarea comandă pentru a instala pluginul GeoPoint:

bin/elasticsearch-plugin install ingest-geoip

După instalarea pluginului GeoPoint, trebuie să vă configurați indexul pentru a utiliza tipul de date „geo_point” pentru câmpul care va deține informațiile de localizare geografică. Pentru a face acest lucru, puteți fie să editați maparea unui index existent, fie să creați un index nou cu maparea configurată.

 

Definiți câmpul de geolocație în cartografiere

Adăugați câmpul de localizare geografică la index și editați maparea pentru acel câmp. Câmpul de localizare geografică utilizează de obicei tipul de date „geo_point”. Harta va defini atributele și opțiunile pentru câmpul de geolocalizare, cum ar fi precizia coordonatelor, formatul și multe altele.

Exemplu:

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

 

Editați datele

Adăugați informații de localizare geografică în documentele dvs. De obicei, informațiile de localizare geografică sunt reprezentate ca o pereche de longitude și latitude coordonate. Puteți obține aceste informații de la utilizatori folosind Google Maps API sau alte surse de date de geolocalizare.

Exemplu:

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

 

Efectuați căutarea de geolocalizare

Acum că aveți date de localizare geografică în Elasticsearch index, puteți efectua interogări de căutare de localizare geografică pentru a găsi documente în apropierea unei anumite locații sau într-un anumit interval geografic. Pentru a efectua o căutare de localizare geografică, puteți utiliza Elasticsearch interogările corespunzătoare ale lui, cum ar fi geo_distance, geo_bounding_box, geo_polygon etc.

Exemplu: găsiți locații în apropierea coordonatelor(21.03405, 105.81507) pe o rază de 5 km.

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

 

Integra Google Maps

Dacă doriți să vă integrați Google Maps pentru Elasticsearch a obține informații despre geolocalizare de la utilizatori, puteți utiliza Google Maps API pentru a prelua coordonatele de longitudine și latitudine pe baza unei adrese sau a unei locații selectate de utilizatori. Apoi, puteți utiliza aceste informații pentru a adăuga date de localizare geografică la Elasticsearch index și pentru a efectua interogări de căutare pentru localizare geografică.

În concluzie, integrarea Google Maps cu Elasticsearch vă permite să utilizați funcțiile de căutare a geolocalizării în datele dvs., permițând căutarea precisă și eficientă pe baza informațiilor de geolocalizare.