|
|
Postitatud 09.01.2019 17:25:39
|
|
|

Lühike sissejuhatus
Me teame, et ES toetab mitmesuguseid andmetüüpe, lisaks tavapärastele põhiandmetüüpidele toetab see ka andmetüüpe, mis salvestavad asukohaandmeid. ES-is on kaks tüüpi andmeid, mis salvestavad geolokatsiooniinfot: geo_shap ja geo_point, ning allpool tutvustan lühidalt geo_point tüüpi geo_point toetab mitut andmeedastusmeetodit:
string Asukoht: laius + "," + lon
massiiv Asukoht: {"lat": ...,"lon": ...}
Eesmärk Asukoht: [lon, laius]
Märkus: Tõenäoliselt on kõik vähemalt korra sellele augule astunud == Geograafilised koordinaatpunktid on laiuskraad esimesena ja pikkuskraad viimane ("laiuskraad, pikkuskraad"), kui väljendada stringidena, samas kui massiivid on esitatud vastupidises vormis, kus pikkuskraad on esmalt ja laiuskraad viimane ([pikkuskraad, laiuskraad]). Tegelikult on Elasticesearchi raames, olgu see siis stringi või massiivi kujul, laiuskraad esimesena ja pikkuskraad viimasena. Kuid varajastel aegadel, et kohanduda GeoJSONi vormindusspetsifikatsiooniga, kohandati massiivivormide esitust. Seda selgitatakse ametlikul veebilehel. Üldiselt on järgmised päringunõuded geo_point tüüpide kohta
Kauguse päring Leia punktid vahemikus keskpunktist
kauguse ulatuse päring (aegunud) Päringupunktid keskpunkti määratud vahemikus eemaldatakse API-st uues ES-i versioonis, seega ma ei hakka seda siin liiga palju selgitama
Piirav päring Leia punktid ristkülikus, mis koosneb kindlast punktist
Hulknurgapäring Leia punktid hulknurgast, mis koosneb mitmest punktist
Java erinevate päringute jaoks loodud SearchSourceBuilderi tehas on järgmine:
Teenistus on järgmine:
Kontrolleri kihi kood on järgmine:
[1]. Kuidas kasutada
Enne geo_point tüüpide kasutamist peaksime esmalt määratlema välja geo_point tüübina kaardistamise kaudu indeksi loomisel, järgmiselt:
Ülal oleme loonud uue indeksi nimega restraunt ning selle kaardistamisfailis määratleme "asukoha" välja tüübi "geo_point"
[2] Valmistage ette andmeid
Kibana kohta oleme koostanud järgmised andmed:
Oleme eelnevalt ette valmistanud 7 andmetükki ja seejärel peame päringu käivitama, et näha, kas meie liides vastab meie vajadustele.
[3] Uurimine
Päringukaugus
Teised kaks päringut on samad mis eelnevalt.
|
Eelmine:ElasticsearchParseException[field peab olema kas [lat], [lon] või [geohash]]Järgmine:Discuz installib rakenduse ja ütleb "Data ei ole tuvastatud, palun tagasta" lahendus
|