Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 15452|Válasz: 0

[Forrás] Java geolokációs információk az ElasticSearch-ben (geo_point)

[Linket másol]
Közzétéve 2019. 01. 09. 17:25:39 | | |
Rövid bevezetés

Tudjuk, hogy az ES számos adattípust támogat, a szokásos alapvető adattípusokon túl olyan adattípusokat is támogat, amelyek helyadatokat rögzítenek. Az ES-ben kétféle adat található, amelyek földhelymeghatározási információkat rögzítenek: geo_shap és geo_point, és röviden bemutatok geo_point típust az alábbiakban
geo_point több adatátviteli módszert támogat:

húr
Pozíció: lat + "," + lon

Tömb
Pozíció: {"lat": ...,"lon": ...}

Cél
Elhelyezkedés: [hosszú, szélesség]


Megjegyzés: Valószínűleg mindenki legalább egyszer lépett ezen a gödrön == A földrajzi koordinátapontok a szélesség először, hosszi fok utolsó ("szélesség, hosszúság") húrokként, míg a tömbök ellentétes formában jelennek meg, a hosszúsági fok először, szélesség utolsó ([hosszúság, szélesség]). Valójában az Elasticesearch-ben, akár húr, akár tömb formájában, a szélesség az első, a hosszúság pedig utolsó. Azonban a korai időkben, hogy alkalmazkodjanak a GeoJSON formázási specifikációjához, a tömbformák ábrázolását módosították. Ezt a hivatalos weboldalon magyarázzák el.
Általában a következő lekérdezési követelmények vannak geo_point típusokra vonatkozóan

Távolsági lekérdezés
Keress távolságon belüli pontokat a középponttól

Távolságtávolsági lekérdezés (elavult)
Az új ES verzióban az API-ból eltávolítják a lekérdezési pontokat a középpont megadott tartományában, így nem magyarázom el túl sokat itt
Bounding lekérdezés
Találj pontokat egy téglalapon belül, amely egy meghatározott pontból áll

Sokszög lekérdezés
Találj pontokat egy többpontból álló sokszögben

A különböző Java lekérdezésekhez létrehozott SearchSourceBuilder gyár a következő:


A szolgálat a következők szerint:

A vezérlőréteg kódja a következő:

[1]. Hogyan kell használni

Mielőtt geo_point típusokat használnánk, először kifejezetten meg kell határoznunk a mezőt geo_point típusként az index létrehozásakor, leképezéssel, a következőként:


Fent létrehoztunk egy új indexet restraunt néven, és a leképező fájljában kifejezetten megadjuk a "hely" mező típusát "geo_point"

[2] Készíts elő adatokat

Kibana esetében a következő adatokat készítettük el:


Fent 7 adatdarabot készítettünk elő, majd le kell futtatnunk a lekérdezést, hogy megnézzük, megfelel-e az interfészünk az igényeinknek.

[3] Vizsgálat

Lekérdezési távolság


A másik két kérdés ugyanaz, mint fentebb.




Előző:Az ElasticsearchParseException[mező vagy [lat], [lon] vagy [geohash]] lehet.
Következő:Discuz telepíti az alkalmazást, és azt mondja: "Az adat nem ismerős, kérjük, küldje vissza" megoldást
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com