Rumah >pembangunan bahagian belakang >tutorial php >Carian Geospatial dengan Solr dan Solarium
Artikel ini menyelidiki carian geospatial dalam Apache Solr dan interaksi dengan perpustakaan Solarium PHP. Solr, perkhidmatan carian yang kuat, menawarkan ciri -ciri seperti carian faceted dan hasil yang menonjol. Solarium memudahkan integrasi SOLR dalam aplikasi PHP. Artikel ini memberi tumpuan kepada keupayaan carian geospatial, penting untuk pertanyaan berasaskan lokasi dalam sektor seperti hartanah dan logistik.
Konsep Utama:
Carian berasaskan lokasi:schema.xml
location
Peranan Solarium: Aplikasi Contoh menggunakan tiga kaedah untuk menentukan asal carian: Geolokasi HTML5 (lokasi berasaskan pelayar), senarai bandar yang telah ditetapkan, dan input latitud/longitud manual. persediaan skema:
Membolehkan keupayaan geospatial dalam SOLR memerlukan pengubahsuaian kepada
. Jenis medan
ditambah menggunakan kelas, dengan latitud dan longitud sebagai sub-bidang ( jenis). Medan yang sepadan (mis., ) ditakrifkan untuk menyimpan data lokasi, dan medan dinamik mengendalikan komponen latitud dan longitud. Contoh
dimasukkan ke dalam repositori aplikasi sampel.
schema.xml
location
Menugaskan Data Lokasi: solr.LatLonType
tdouble
latlon
Data lokasi diberikan dalam format schema.xml
. Menggunakan solarium, ini dicapai dengan:
pertanyaan geospatial dengan solarium:
Pembantu Solarium memudahkan penciptaan pertanyaan. Penapis jarak ditambah dengan menggunakan $helper->geofilt()
, menentukan medan, latitud, longitud, dan jarak. Pembantu geodist()
mengira jarak, dan alias (mis., _distance_
) membantu mengambil jarak dalam hasil. Menyusun mengikut jarak dilakukan dengan menggunakan $query->setQuery('{!func}' . $helper->geodist(...))
dan $query->addSort('score', 'asc');
.
Aplikasi Contoh:
Kesimpulan:
Artikel ini menyediakan panduan komprehensif untuk melaksanakan carian geospatial menggunakan Solr dan Solarium. Aplikasi contoh mempamerkan pelaksanaan praktikal dan menunjukkan cara menggabungkan carian berasaskan teks dan geospatial untuk hasil yang lebih halus.
Soalan Lazim (Soalan Lazim):
bagaimana solr mengendalikan data geospatial?
bagaimana saya boleh melakukan carian geospatial di solarium?
Apakah perbezaan antara penapis "geofilt" dan "bbox" dalam solarium?
bagaimana saya boleh menyusun dokumen dengan jarak dalam solr?
Bolehkah saya melakukan carian geospatial pada pelbagai bidang dalam solr?
bagaimana saya dapat meningkatkan prestasi carian geospatial dalam solr?
Apakah peranan "SpatialRecursivePrefixTreeFieldType" dalam solr?
bagaimana solr mengendalikan medan lokasi multi-nilai?
Bolehkah saya menggunakan carian geospatial dengan jenis carian lain dalam solr?
Jawapan kepada Soalan Lazim ini dimasukkan ke dalam input asal dan tidak diulangi di sini untuk keringkasan.
Atas ialah kandungan terperinci Carian Geospatial dengan Solr dan Solarium. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!