Introduzione alla geolocalizzazione Ricerca in Elasticsearch

Innanzitutto, devi installare Elasticsearch sul tuo server o utilizzare un servizio basato su cloud Elasticsearch come Elastic Cloud. Assicurati di installare una versione compatibile Elasticsearch con il plug-in GeoPoint.

 

Installa e configura il plug-in GeoPoint

Elasticsearch supporta la ricerca di geolocalizzazione tramite il plug-in GeoPoint. Per installare questo plugin, puoi utilizzare lo Elasticsearch strumento di gestione dei plugin.

Ad esempio, se stai utilizzando Elasticsearch la versione 7.x, puoi eseguire il seguente comando per installare il plug-in GeoPoint:

bin/elasticsearch-plugin install ingest-geoip

Dopo aver installato il plug-in GeoPoint, è necessario configurare l'indice in modo che utilizzi il tipo di dati "geo_point" per il campo che conterrà le informazioni di geolocalizzazione. Per fare ciò, puoi modificare la mappatura di un indice esistente o creare un nuovo indice con la mappatura configurata.

 

Definire il campo di geolocalizzazione in Mapping

Aggiungi il campo di geolocalizzazione al tuo indice e modifica la mappatura per quel campo. Il campo di geolocalizzazione utilizza in genere il tipo di dati "geo_point". La mappatura definirà gli attributi e le opzioni per il campo di geolocalizzazione, come la precisione delle coordinate, il formato e altro.

Esempio:

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

 

Modifica dati

Aggiungi informazioni di geolocalizzazione ai tuoi documenti. In genere, le informazioni di geolocalizzazione sono rappresentate da una coppia di longitude e latitude coordinate. È possibile ottenere queste informazioni dagli utenti utilizzando Google Maps API o altre fonti di dati di geolocalizzazione.

Esempio:

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

 

Eseguire la ricerca di geolocalizzazione

Ora che hai i dati di geolocalizzazione nel tuo Elasticsearch indice, puoi eseguire query di ricerca di geolocalizzazione per trovare documenti vicino a una posizione specifica o all'interno di un determinato intervallo geografico. Per eseguire una ricerca di geolocalizzazione, puoi utilizzare Elasticsearch le query corrispondenti di come geo_distance, geo_bounding_box, geo_polygon, ecc.

Esempio: trova posizioni vicino alle coordinate(21.03405, 105.81507) entro un raggio di 5 km.

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

 

Integrare Google Maps

Se si desidera integrare Google Maps con Elasticsearch per ottenere informazioni di geolocalizzazione dagli utenti, è possibile utilizzare Google Maps API per recuperare le coordinate di longitudine e latitudine in base a un indirizzo o una posizione selezionata dagli utenti. Quindi, puoi utilizzare queste informazioni per aggiungere dati di geolocalizzazione al tuo Elasticsearch indice ed eseguire query di ricerca di geolocalizzazione.

In conclusione, l'integrazione Google Maps con Elasticsearch ti consente di sfruttare le funzionalità di ricerca della geolocalizzazione nei tuoi dati, consentendo una ricerca accurata ed efficiente basata sulle informazioni sulla geolocalizzazione.