Nejprve musíte nainstalovat Elasticsearch na svůj server nebo použít cloudovou Elasticsearch službu, jako je Elastic Cloud. Ujistěte se, že jste nainstalovali kompatibilní verzi Elasticsearch s pluginem GeoPoint.
Nainstalujte a nakonfigurujte plugin GeoPoint
Elasticsearch podporuje geolokační vyhledávání prostřednictvím pluginu GeoPoint. Chcete-li nainstalovat tento plugin, můžete použít Elasticsearch nástroj pro správu pluginu.
Pokud například používáte Elasticsearch verzi 7.x, můžete spustit následující příkaz a nainstalovat plugin GeoPoint:
bin/elasticsearch-plugin install ingest-geoip
Po instalaci pluginu GeoPoint musíte nakonfigurovat svůj index tak, aby používal datový typ „geo_point“ pro pole, které bude obsahovat informace o geolokaci. Chcete-li to provést, můžete buď upravit mapování existujícího indexu, nebo vytvořit nový index s nakonfigurovaným mapováním.
Definujte pole geolokace v mapování
Přidejte pole geolokace do indexu a upravte mapování pro toto pole. Pole geolokace obvykle používá datový typ „geo_point“. Mapování bude definovat atributy a možnosti pro pole geolokace, jako je přesnost souřadnic, formát a další.
Příklad:
PUT /my_locations_index
{
"mappings": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
Upravit data
Přidejte do dokumentů informace o geolokaci. Geolokační informace jsou obvykle reprezentovány jako dvojice longitude
a latitude
souřadnice. Tyto informace můžete získat od uživatelů pomocí Google Maps API nebo jiných zdrojů geolokačních dat.
Příklad:
PUT /my_locations_index/_doc/1
{
"name": "Ba Dinh Square",
"location": {
"lat": 21.03405,
"lon": 105.81507
}
}
Proveďte vyhledávání geolokace
Nyní, když máte ve svém Elasticsearch indexu geolokační data, můžete provádět geolokační vyhledávací dotazy, abyste našli dokumenty v blízkosti konkrétního místa nebo v určitém geografickém rozsahu. Chcete-li provést geolokační vyhledávání, můžete použít Elasticsearch odpovídající dotazy jako geo_distance, geo_bounding_box, geo_polygon atd.
Příklad: Najděte místa poblíž souřadnic(21.03405, 105.81507) v okruhu 5 km.
GET /my_locations_index/_search
{
"query": {
"geo_distance": {
"distance": "5km",
"location": {
"lat": 21.03405,
"lon": 105.81507
}
}
}
}
Integrovat Google Maps
Pokud se chcete integrovat Google Maps s a Elasticsearch získat od uživatelů geolokační informace, můžete použít Google Maps API k načtení souřadnic zeměpisné délky a šířky na základě adresy nebo umístění vybraného uživateli. Tyto informace pak můžete použít k přidání geolokačních dat do Elasticsearch indexu a provádění vyhledávacích dotazů geolokace.
Závěrem lze říci, že integrace Google Maps s Elasticsearch vám umožňuje využívat funkce vyhledávání geolokace ve vašich datech, což umožňuje přesné a efektivní vyhledávání na základě informací o geolokaci.