Wprowadzenie do wyszukiwania geolokalizacyjnego w Elasticsearch

Po pierwsze, musisz zainstalować Elasticsearch na swoim serwerze lub skorzystać z Elasticsearch usługi opartej na chmurze, takiej jak Elastic Cloud. Upewnij się, że zainstalowałeś kompatybilną wersję Elasticsearch z wtyczką GeoPoint.

 

Zainstaluj i skonfiguruj wtyczkę GeoPoint

Elasticsearch obsługuje wyszukiwanie geolokalizacji za pomocą wtyczki GeoPoint. Aby zainstalować tę wtyczkę, możesz użyć Elasticsearch narzędzia do zarządzania wtyczkami.

Na przykład, jeśli używasz Elasticsearch wersji 7.x, możesz uruchomić następujące polecenie, aby zainstalować wtyczkę GeoPoint:

bin/elasticsearch-plugin install ingest-geoip

Po zainstalowaniu wtyczki GeoPoint musisz skonfigurować swój indeks, aby używał typu danych „geo_point” dla pola, które będzie przechowywać informacje o geolokalizacji. Aby to zrobić, możesz edytować mapowanie istniejącego indeksu lub utworzyć nowy indeks ze skonfigurowanym mapowaniem.

 

Zdefiniuj pole geolokalizacji w Mapowaniu

Dodaj pole geolokalizacji do swojego indeksu i edytuj mapowanie dla tego pola. Pole geolokalizacji zwykle używa typu danych „geo_point”. Mapowanie określi atrybuty i opcje pola geolokalizacji, takie jak precyzja współrzędnych, format i inne.

Przykład:

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

 

Edytuj dane

Dodaj informacje o geolokalizacji do swoich dokumentów. Zazwyczaj informacje o geolokalizacji są reprezentowane jako para longitude i latitude współrzędne. Możesz uzyskać te informacje od użytkowników korzystających z Google Maps API lub innych źródeł danych geolokalizacyjnych.

Przykład:

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

 

Wykonaj wyszukiwanie geolokalizacyjne

Teraz, gdy masz już dane geolokalizacyjne w swoim Elasticsearch indeksie, możesz wykonywać zapytania geolokalizacyjne, aby znaleźć dokumenty w pobliżu określonej lokalizacji lub w określonym zakresie geograficznym. Aby przeprowadzić wyszukiwanie geolokalizacyjne, możesz użyć Elasticsearch odpowiednich zapytań, takich jak geo_distance, geo_bounding_box, geo_polygon itp.

Przykład: Znajdź lokalizacje w pobliżu współrzędnych(21.03405, 105.81507) w promieniu 5 km.

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

 

Zintegrować Google Maps

Jeśli chcesz zintegrować się Google Maps w Elasticsearch celu uzyskania informacji geolokalizacyjnych od użytkowników, możesz użyć Google Maps API do pobrania współrzędnych długości i szerokości geograficznej na podstawie adresu lub lokalizacji wybranej przez użytkowników. Następnie możesz użyć tych informacji, aby dodać dane geolokalizacyjne do swojego Elasticsearch indeksu i wykonać zapytania wyszukiwania geolokalizacyjnego.

Podsumowując, integracja Google Maps z Elasticsearch umożliwia wykorzystanie funkcji wyszukiwania geolokalizacyjnego w danych, umożliwiając dokładne i wydajne wyszukiwanie w oparciu o informacje geolokalizacyjne.