Apache Solr

Pengantar Apache Solr. Bagian 2 Menanyakan Solr

Pengantar Apache Solr. Bagian 2 Menanyakan Solr
Apache Solr [1] adalah kerangka kerja mesin pencari yang ditulis dalam Java dan didasarkan pada perpustakaan pencarian Lucene [6]. Pada artikel sebelumnya, kami menyiapkan Apache Solr pada Debian GNU/Linux 11 yang akan segera dirilis, memprakarsai satu inti data, mengunggah data contoh, dan mendemonstrasikan cara melakukan pencarian dasar dalam kumpulan data menggunakan sederhana pertanyaan.

Ini adalah artikel lanjutan dari yang sebelumnya. Kami akan membahas cara menyaring kueri, merumuskan kriteria pencarian yang lebih kompleks dengan parameter yang berbeda, dan memahami berbagai formulir web halaman kueri Apache Solr. Selain itu, kita akan membahas bagaimana mem-posting hasil pencarian menggunakan format output yang berbeda seperti XML, CSV, dan JSON.

Meminta Apache Solr

Apache Solr dirancang sebagai aplikasi web dan layanan yang berjalan di latar belakang. Hasilnya adalah aplikasi klien apa pun dapat berkomunikasi dengan Solr dengan mengirimkan kueri ke sana (fokus artikel ini), memanipulasi inti dokumen dengan menambahkan, memperbarui, dan menghapus data yang diindeks, dan mengoptimalkan data inti. Ada dua opsi - melalui dasbor/antarmuka web atau menggunakan API dengan mengirimkan permintaan yang sesuai.

Adalah umum untuk menggunakan pilihan pertama untuk tujuan pengujian dan bukan untuk akses reguler. Gambar di bawah ini menunjukkan Dasbor dari Antarmuka Pengguna Administrasi Apache Solr dengan bentuk kueri yang berbeda di browser web Firefox.

Pertama, dari menu di bawah bidang pilihan inti, pilih entri menu "Query". Selanjutnya dashboard akan menampilkan beberapa field input sebagai berikut:

Mengklik tombol Execute Query menjalankan permintaan yang diinginkan. Untuk contoh praktis, lihat di bawah.

sebagai pilihan kedua, Anda dapat mengirim permintaan menggunakan API. Ini adalah permintaan HTTP yang dapat dikirim ke Apache Solr oleh aplikasi apa pun. Solr memproses permintaan dan mengembalikan jawaban. Kasus khusus ini menghubungkan ke Apache Solr melalui Java API. Ini telah dialihdayakan ke proyek terpisah yang disebut SolrJ [7] - API Java tanpa memerlukan koneksi HTTP.

Sintaks kueri

Sintaks kueri paling baik dijelaskan dalam [3] dan [5]. Nama parameter yang berbeda secara langsung sesuai dengan nama bidang entri dalam formulir yang dijelaskan di atas. Tabel di bawah ini mencantumkannya, ditambah contoh praktis.

Indeks Parameter Kueri

Parameter Deskripsi Contoh
q Parameter kueri utama Apache Solr - nama dan nilai bidang. Kesamaan skor mereka mendokumentasikan istilah dalam parameter ini. nomor: 5
mobil:*adilla*
*:X5
fq Batasi hasil yang disetel ke dokumen superset yang cocok dengan filter, misalnya, yang ditentukan melalui Parser Kueri Rentang Fungsi model
identitas, model
Mulailah Offset untuk hasil halaman (mulai). Nilai default dari parameter ini adalah 0. 5
baris Offset untuk hasil halaman (akhir). Nilai parameter ini adalah 10 secara default 15
menyortir Ini menentukan daftar bidang yang dipisahkan dengan koma, berdasarkan hasil kueri yang akan diurutkan model asc
fl Ini menentukan daftar bidang yang akan dikembalikan untuk semua dokumen di kumpulan hasil model
identitas, model
wt Parameter ini mewakili tipe penulis tanggapan yang ingin kita lihat hasilnya. Nilai ini adalah JSON secara default. json
xml

Pencarian dilakukan melalui permintaan HTTP GET dengan string kueri dalam parameter q. Contoh di bawah ini akan memperjelas cara kerjanya. Yang digunakan adalah curl untuk mengirim kueri ke Solr yang diinstal secara lokal.

Selanjutnya, Anda dapat menentukan penangan permintaan Anda sendiri untuk mengirim parameter permintaan opsional ke parser kueri untuk mengontrol informasi apa yang dikembalikan.

Pengurai Kueri

Apache Solr menggunakan apa yang disebut parser kueri - komponen yang menerjemahkan string pencarian Anda menjadi instruksi khusus untuk mesin pencari. Pengurai kueri berdiri di antara Anda dan dokumen yang Anda cari.

Solr hadir dengan berbagai jenis parser yang berbeda dalam cara menangani kueri yang dikirimkan. Parser Kueri Standar berfungsi dengan baik untuk kueri terstruktur tetapi kurang toleran terhadap kesalahan sintaksis. Pada saat yang sama, Parser Kueri DisMax dan Extended DisMax dioptimalkan untuk kueri seperti bahasa alami. Mereka dirancang untuk memproses frasa sederhana yang dimasukkan oleh pengguna dan untuk mencari istilah individual di beberapa bidang menggunakan pembobotan yang berbeda.

Selain itu, Solr juga menawarkan apa yang disebut Kueri Fungsi yang memungkinkan suatu fungsi digabungkan dengan kueri untuk menghasilkan skor relevansi tertentu. Parser ini diberi nama Function Query Parser dan Function Range Query Parser. Contoh di bawah ini menunjukkan yang terakhir untuk memilih semua set data untuk "bmw" (disimpan di bidang data make) dengan model dari 318 hingga 323:

curl http://localhost:8983/solr/cars/query -d '
q=make:bmw&
fq=model:[318 SAMPAI 323] '

Hasil pasca-pemrosesan

Mengirim kueri ke Apache Solr adalah satu bagian, tetapi pasca-pemrosesan hasil pencarian dari yang lain. Pertama, Anda dapat memilih antara format respons yang berbeda - dari JSON hingga XML, CSV, dan format Ruby yang disederhanakan. Cukup tentukan parameter wt yang sesuai dalam kueri. Contoh kode di bawah ini menunjukkan ini untuk mengambil dataset dalam format CSV untuk semua item menggunakan curl dengan escape &:

curl http://localhost:8983/solr/cars/query?q=id:5\&wt=csv

Outputnya adalah daftar yang dipisahkan koma sebagai berikut:

Untuk menerima hasil sebagai data XML tetapi hanya dua bidang keluaran dan model, jalankan kueri berikut:

curl http://localhost:8983/solr/cars/query?q=*:*\&fl=membuat,model\&wt=xml

Outputnya berbeda dan berisi header respons dan respons aktual:

Wget hanya mencetak data yang diterima di stdout. Ini memungkinkan Anda untuk memroses respons menggunakan alat baris perintah standar. Untuk beberapa daftar, ini berisi jq [9] untuk JSON, xsltproc, xidel, xmlstarlet [10] untuk XML serta csvkit [11] untuk format CSV.

Kesimpulan

Artikel ini menunjukkan berbagai cara mengirim kueri ke Apache Solr dan menjelaskan cara memproses hasil pencarian. Di bagian selanjutnya, Anda akan mempelajari cara menggunakan Apache Solr untuk mencari di PostgreSQL, sistem manajemen basis data relasional.

Tentang Penulis

Jacqui Kabeta adalah seorang pencinta lingkungan, peneliti, pelatih, dan mentor. Di beberapa negara Afrika, ia telah bekerja di industri TI dan lingkungan LSM.

Frank Hofmann adalah pengembang, pelatih, dan penulis TI dan lebih suka bekerja dari Berlin, Jenewa, dan Cape Town. Rekan penulis Buku Manajemen Paket Debian tersedia dari dpmb.organisasi

Tautan dan Referensi

Cara membalikkan arah gulir Mouse dan Touchpads di Windows 10
Mouse dan Panel sentuhs tidak hanya membuat komputasi menjadi mudah tetapi juga lebih efisien dan tidak memakan banyak waktu. Kami tidak dapat membaya...
Cara mengubah penunjuk Mouse dan ukuran kursor, warna & skema pada Windows 10
Penunjuk mouse dan kursor di Windows 10 adalah aspek yang sangat penting dari sistem operasi. Ini dapat dikatakan untuk sistem operasi lain juga, jadi...
Mesin Game Gratis dan Sumber Terbuka untuk Mengembangkan Game Linux
Artikel ini akan membahas daftar mesin game sumber terbuka dan gratis yang dapat digunakan untuk mengembangkan game 2D dan 3D di Linux. Ada banyak mes...