Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 15452|Jawab: 0

[Sumber] Informasi Geolokasi Java di ElasticSearch (geo_point)

[Salin tautan]
Diposting pada 09/01/2019 17.25.39 | | |
Pengantar singkat

Kami tahu bahwa ES mendukung berbagai jenis data, selain tipe data dasar umum kami, ES juga mendukung tipe data yang merekam informasi lokasi. Dalam ES, ada dua jenis data yang mencatat informasi geolokasi, yaitu geo_shap dan geo_point, dan saya akan memperkenalkan secara singkat jenis geo_point di bawah ini
geo_point mendukung beberapa metode transfer data:

String
Posisi: lat + "," + lon

Array
Posisi: {"lat": ...,"lon": ...}

Objek
Lokasi: [lon, lat]


Catatan: Mungkin semua orang telah menginjak lubang ini setidaknya sekali == Titik koordinat geografis adalah garis lintang pertama dan garis bujur terakhir ("lintang, bujur") bila dinyatakan sebagai string, sedangkan array direpresentasikan dalam bentuk yang berlawanan, dengan garis bujur pertama dan garis lintang terakhir ([bujur, lintang]). Faktanya, dalam Elasticesearch, baik itu dalam bentuk string atau array, garis lintang didahulukan dan bujur berada di urutan terakhir. Namun, pada hari-hari awal, untuk beradaptasi dengan spesifikasi pemformatan GeoJSON, representasi formulir array disesuaikan. Ini dijelaskan di situs resminya.
Umumnya ada persyaratan kueri berikut untuk jenis geo_point

kueri jarak
Temukan titik dalam jangkauan dari titik tengah

kueri rentang jarak (tidak digunakan lagi)
Mengkueri titik dalam rentang titik pusat yang ditentukan dihapus dari API di versi baru ES, jadi saya tidak akan menjelaskannya terlalu banyak di sini
Kueri Pembatas
Temukan titik dalam persegi panjang yang terdiri dari titik tertentu

Kueri poligon
Temukan titik dalam poligon yang terdiri dari beberapa titik

Pabrik SearchSourceBuilder yang dibuat untuk kueri yang berbeda di Java adalah sebagai berikut:


layanan sebagai berikut:

Kode lapisan pengontrol adalah sebagai berikut:

[1]. Cara menggunakan

Sebelum kita menggunakan jenis geo_point, pertama-tama kita harus secara eksplisit menentukan bidang sebagai jenis geo_point melalui pemetaan saat membuat indeks, sebagai berikut:


Di atas kami telah membuat indeks baru bernama restraunt, dan dalam file pemetaannya, kami secara eksplisit menentukan jenis bidang "lokasi" sebagai "geo_point"

[2] Siapkan beberapa data

Di Kibana kami telah menyiapkan data berikut:


Kami telah menyiapkan 7 bagian data di atas, dan kemudian kami perlu menjalankan kueri untuk melihat apakah antarmuka kami memenuhi kebutuhan kami.

[3] Pertanyaan

Jarak kueri


Dua pertanyaan lainnya sama seperti di atas.




Mantan:ElasticsearchParseException[bidang harus [lat], [lon] atau [geohash]]
Depan:Diskusi menginstal aplikasi dan mengatakan solusi "Data tidak dikenali, silakan kembali"
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com