Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 15452|Odpoveď: 0

[Zdroj] Java geolokačné informácie v ElasticSearch (geo_point)

[Kopírovať odkaz]
Zverejnené 9. 1. 2019 17:25:39 | | |
Stručný úvod

Vieme, že ES podporuje širokú škálu dátových typov, okrem našich bežných základných dátových typov podporuje aj dátové typy, ktoré zaznamenávajú informácie o polohe. V ES existujú dva typy dát, ktoré zaznamenávajú geolokačné informácie, a to geo_shap a geo_point, a nižšie stručne predstavím geo_point typy
geo_point podporuje viacero metód prenosu dát:

Struna
Pozícia: lat + "," + lon

pole
Pozícia: {"lat": ...,"lon": ...}

Cieľ
Poloha: [dĺžka, šírka]


Poznámka: Pravdepodobne každý na túto jamu stúpil aspoň raz == Geografické súradnicové body sú zemepisná šírka ako prvá a zemepisná dĺžka posledná ("zemepisná šírka, dĺžka"), keď sú vyjadrené ako reťazce, zatiaľ čo polia sú reprezentované opačným spôsobom, pričom zemepisná dĺžka je prvá a zemepisná šírka posledná ([zemepisná dĺžka, zemepisná šírka]). V skutočnosti, v rámci Elasticesearch, či už ide o reťazec alebo pole, zemepisná šírka je na prvom mieste a na konci dĺžka. Avšak v začiatkoch, aby sa prispôsobili formátovacej špecifikácii GeoJSON, bola upravená reprezentácia foriem polí. Toto je vysvetlené na oficiálnej webovej stránke.
Pre geo_point typy dopytov sú všeobecne uvedené nasledujúce požiadavky

Dotaz na vzdialenosť
Nájdite body v dosahu od stredového bodu

Dotaz na rozsah vzdialenosti (zastarané)
Dotazovanie bodov v špecifikovanom rozsahu stredového bodu je v novej verzii ES z API odstránené, takže to tu nebudem príliš vysvetľovať
Ohraničujúci dotaz
Nájdite body v obdĺžniku pozostávajúcom zo špecifikovaného bodu

Polygónový dotaz
Nájdite body v polygóne zloženom z viacerých bodov

Továreň SearchSourceBuilder vytvorená pre rôzne dotazy v Jave je nasledovná:


Služba nasledovne:

Kód vrstvy ovládača je nasledovný:

[1]. Ako používať

Predtým, než použijeme geo_point typy, mali by sme najprv explicitne určiť pole ako typ geo_point pomocou mapovania pri vytváraní indexu, nasledovne:


Vyššie sme vytvorili nový index s názvom restraunt a v jeho mapovacom súbore explicitne špecifikujeme typ poľa "location" ako "geo_point"

[2] Priprav nejaké dáta

O Kibane sme pripravili nasledujúce údaje:


Pripravili sme 7 dát vyššie uvedených a potom musíme vykonať dotaz, aby sme zistili, či naše rozhranie spĺňa naše potreby.

[3] Vyšetrovanie

Vzdialenosť dotazu


Ostatné dve otázky sú rovnaké ako vyššie.




Predchádzajúci:ElasticsearchParseException[pole musí byť buď [lat], [lon] alebo [geohash]]
Budúci:Discuz nainštaluje aplikáciu a hovorí "Dáta nie sú rozpoznané, prosím, vráť" – obchádzka
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com