Először is telepítenie kell Elasticsearch a szerverére, vagy olyan felhőalapú Elasticsearch szolgáltatást kell használnia, mint az Elastic Cloud. Elasticsearch Győződjön meg arról, hogy a GeoPoint beépülő modul kompatibilis verzióját telepítette .
Telepítse és konfigurálja a GeoPoint beépülő modult
Elasticsearch támogatja a földrajzi hely keresését a GeoPoint beépülő modulon keresztül. A bővítmény telepítéséhez használhatja a Elasticsearch bővítménykezelő eszközt.
Például, ha a 7.x verziót használja Elasticsearch, a következő parancs futtatásával telepítheti a GeoPoint beépülő modult:
bin/elasticsearch-plugin install ingest-geoip
A GeoPoint beépülő modul telepítése után be kell állítania az indexet, hogy a „geo_point” adattípust használja a földrajzi helyadatokat tartalmazó mezőhöz. Ehhez szerkesztheti egy meglévő index leképezését, vagy létrehozhat egy új indexet a konfigurált leképezéssel.
Határozza meg a földrajzi helymeghatározási mezőt a Térképezésben
Adja hozzá a földrajzi hely mezőt az indexhez, és szerkessze a mező hozzárendelését. A földrajzi helymeghatározás mező általában a „geo_point” adattípust használja. A leképezés meghatározza a földrajzi helymeghatározási mező attribútumait és beállításait, például a koordináták pontosságát, a formátumot és egyebeket.
Példa:
PUT /my_locations_index
{
"mappings": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
Adatok szerkesztése
Adjon hozzá földrajzi helyadatokat a dokumentumokhoz. longitude
A földrajzi helyadatokat általában a és a koordináták párjaként ábrázolják latitude
. Ezeket az információkat a felhasználóktól szerezheti be a Google Maps API vagy más földrajzi helymeghatározási adatforrások használatával.
Példa:
PUT /my_locations_index/_doc/1
{
"name": "Ba Dinh Square",
"location": {
"lat": 21.03405,
"lon": 105.81507
}
}
Hajtsa végre a földrajzi hely keresését
Most, hogy földrajzi elhelyezkedési adatok vannak az indexben Elasticsearch, földrajzi hely keresési lekérdezéseket hajthat végre, hogy egy adott hely közelében vagy egy bizonyos földrajzi tartományon belül keressen dokumentumokat. A földrajzi hely keresésének végrehajtásához használhatja Elasticsearch a megfelelő lekérdezéseket, például a geo_distance, geo_bounding_box, geo_polygon stb.
Példa: Keressen helyeket a koordináták(21.03405, 105.81507) közelében 5 km-es körzetben.
GET /my_locations_index/_search
{
"query": {
"geo_distance": {
"distance": "5km",
"location": {
"lat": 21.03405,
"lon": 105.81507
}
}
}
}
Egyesít Google Maps
Ha integrálni szeretne a felhasználóktól való földrajzi helyadatok megszerzéséhez, akkor használja a Google Maps hosszúsági és szélességi koordinátákat a felhasználók által kiválasztott cím vagy hely alapján. Ezután ezeket az információkat felhasználhatja földrajzi helyadatok hozzáadásához az indexhez, és földrajzi hely keresési lekérdezéseket hajthat végre. Elasticsearch Google Maps API Elasticsearch
Összefoglalva, a Google Maps -val való integráció Elasticsearch lehetővé teszi a földrajzi hely keresési funkcióinak kihasználását az adatokban, lehetővé téve a pontos és hatékony keresést a földrajzi helyadatok alapján.