|
|
Publicēts 09.01.2019 17:25:39
|
|
|

Īss ievads
Mēs zinām, ka ES atbalsta plašu datu tipu klāstu, papildus mūsu parastajiem pamatdatu tipiem, tas atbalsta arī datu tipus, kas reģistrē atrašanās vietas informāciju. ES ir divu veidu dati, kas reģistrē ģeogrāfiskās atrašanās vietas informāciju, proti, geo_shap un geo_point, un es īsumā iepazīstināšu ar geo_point veidiem tālāk geo_point atbalsta vairākas datu pārsūtīšanas metodes:
virkne Amats: lat + "," + lon
masīvs Pozīcija: {"lat": ...,"lon": ...}
Objekts Atrašanās vieta: [lon, lat]
Piezīme: Droši vien visi ir uzkāpuši uz šīs bedres vismaz vienu reizi == Ģeogrāfiskie koordinātu punkti ir pirmais platums un pēdējais garums ("platums, garums"), ja tie izteikti kā virknes, bet masīvi tiek attēloti pretējā formā, ar garumu pirmajā un pēdējo platumu ([garums, platums]). Patiesībā Elasticesearch, neatkarīgi no tā, vai tas ir virknes vai masīva formā, platums ir pirmajā vietā un garums ir pēdējais. Tomēr pirmajās dienās, lai pielāgotos GeoJSON formatēšanas specifikācijai, masīva formu attēlojums tika pielāgots. Tas ir izskaidrots oficiālajā vietnē. Parasti geo_point tipiem ir šādas vaicājumu prasības
attāluma vaicājums Punktu atrašana diapazonā no centra punkta
Attāluma diapazona vaicājums (novecojis) Vaicājuma punkti norādītajā centra punkta diapazonā tiek noņemti no API jaunajā ES versijā, tāpēc es to šeit pārāk daudz nepaskaidrošu
Ierobežojošs vaicājums Punktu atrašana taisnstūrī, kas sastāv no noteikta punkta
Daudzstūra vaicājums Punktu atrašana daudzstūrī, kas sastāv no vairākiem punktiem
SearchSourceBuilder rūpnīca, kas izveidota dažādiem vaicājumiem Java, ir šāda:
izsniegšana šādi:
Kontroliera slāņa kods ir šāds:
[1]. Kā lietot
Pirms geo_point tipu izmantošanas, veidojot indeksu, vispirms skaidri jānorāda lauks kā geo_point tips, izmantojot kartēšanu, šādi:
Iepriekš mēs esam izveidojuši jaunu indeksu ar nosaukumu restraunt, un tā kartēšanas failā mēs skaidri norādām "atrašanās vietas" lauka veidu kā "geo_point"
[2] Sagatavojiet dažus datus
Par Kibanu mēs esam sagatavojuši šādus datus:
Mēs esam sagatavojuši 7 datu gabalus iepriekš, un pēc tam mums ir jāizpilda vaicājums, lai redzētu, vai mūsu saskarne atbilst mūsu vajadzībām.
[3] Izmeklēšana
Vaicājuma attālums
Pārējie divi jautājumi ir tādi paši kā iepriekš.
|
Iepriekšējo:ElasticsearchParseException[laukam jābūt [lat], [lon] vai [geohash]]Nākamo:Discuz instalē lietotni un saka: "Dati netiek atpazīti, lūdzu, atgrieziet" risinājums
|