Apa itu Apache Solr
Apache Solr adalah salah satu pangkalan data NoSQL yang paling popular yang dapat digunakan untuk menyimpan data dan menanyakannya dalam masa nyata. Ini didasarkan pada Apache Lucene dan ditulis di Jawa. Sama seperti Elasticsearch, ia menyokong pertanyaan pangkalan data melalui REST API. Ini bermaksud bahawa kita boleh menggunakan panggilan HTTP mudah dan menggunakan kaedah HTTP seperti GET, POST, PUT, DELETE dll. untuk mengakses data. Ini juga memberikan pilihan untuk mendapatkan data dalam bentuk XML atau JSON melalui REST API.
Senibina: Apache Solr
Sebelum kita dapat mula bekerjasama dengan Apache Solr, kita mesti memahami komponen yang membentuk Apache Solr. Mari lihat beberapa komponen yang ada:
Senibina Apache Solr
Perhatikan bahawa hanya komponen utama untuk Solr ditunjukkan dalam gambar di atas. Mari fahami fungsi mereka di sini juga:
- Pengendali Permintaan: Permintaan yang dibuat oleh klien ke Solr dikendalikan oleh Peminta Permintaan. Permintaan itu boleh jadi dari menambahkan catatan baru untuk mengemas kini indeks di Solr. Pengendali mengenal pasti jenis permintaan dari kaedah HTTP yang digunakan dengan pemetaan permintaan.
- Cari Komponen: Ini adalah salah satu komponen terpenting yang terkenal dengan Solr. Search Component mengurus melakukan operasi yang berkaitan dengan carian seperti ketidakjelasan, pemeriksaan ejaan, pertanyaan istilah dll.
- Penyusun Pertanyaan: Ini adalah komponen yang sebenarnya menguraikan pertanyaan yang dilalui oleh klien ke pengendali permintaan dan memecahkan pertanyaan menjadi beberapa bahagian yang dapat difahami oleh mesin yang mendasari
- Penulis Respons: Komponen ini bertanggungjawab menguruskan format output untuk pertanyaan yang dihantar ke mesin. Writer Response membolehkan kami memberikan output dalam pelbagai format seperti XML, JSON dll.
- Penganalisis / Tokenizer: Lucene Engine memahami pertanyaan dalam bentuk pelbagai token. Solr menganalisis pertanyaan, memecahnya menjadi beberapa token dan meneruskannya ke Mesin Lucene.
- Kemas kini Pemproses Permintaan: Apabila pertanyaan dijalankan dan melakukan operasi seperti mengemas kini indeks dan data yang berkaitan dengannya, komponen Pemproses Permintaan Kemas kini bertanggungjawab untuk menguruskan data dalam indeks dan mengubahnya.
Bermula dengan Apache Solr
Untuk mula menggunakan Apache Solr, ia mesti dipasang pada mesin. Untuk melakukan ini, baca Pasang Apache Solr di Ubuntu.
Pastikan anda mempunyai pemasangan Solr yang aktif jika anda ingin mencuba contoh yang kami sampaikan dalam pelajaran dan halaman pentadbir dapat dicapai di localhost:
Laman Utama Apache Solr
Memasukkan Data
Sebagai permulaan, marilah kita mempertimbangkan Koleksi di Solr yang kita namakan sebagai linux_hint_collection. Tidak perlu mendefinisikan koleksi ini secara jelas kerana ketika kita memasukkan objek pertama, koleksi akan dibuat secara automatik. Mari cuba panggilan API REST pertama kami untuk memasukkan objek baru ke dalam koleksi bernama linux_hint_collection.
Memasukkan Data
curl -X POST -H 'Content-Type: application / json''http: // localhost: 8983 / solr / linux_hint_collection / update / json / docs' --data-binari '
"id": "iduye",
"nama": "Shubham"
'
Inilah yang kita dapat kembali dengan arahan ini:
Perintah untuk memasukkan data ke dalam Solr
Data juga boleh disisipkan menggunakan Laman Utama Solr yang kita lihat sebelumnya. Mari cuba ini di sini supaya semuanya jelas:
Masukkan Data melalui Laman Utama Solr
Oleh kerana Solr mempunyai cara interaksi yang sangat baik dengan HTTP RESTful APIs, kami akan menunjukkan interaksi DB menggunakan API yang sama dari sekarang dan seterusnya dan tidak akan banyak fokus memasukkan data melalui Laman Web Solr.
Senaraikan Semua Koleksi
Kami dapat menyenaraikan semua koleksi di Apache Solr menggunakan REST API juga. Inilah arahan yang boleh kita gunakan:
Senaraikan Semua Koleksi
curl http: // localhost: 8983 / solr / admin / koleksi?tindakan = SENARAI & wt = jsonMari lihat output untuk arahan ini:
Kami melihat dua koleksi di sini yang terdapat dalam pemasangan Solr kami.
Dapatkan Objek dengan ID
Sekarang, mari kita lihat bagaimana kita dapat MENDAPATKAN data dari koleksi Solr dengan ID tertentu. Berikut adalah arahan REST API:
Dapatkan Objek dengan ID
curl http: // localhost: 8983 / solr / linux_hint_collection / dapatkan?id = iduyeInilah yang kita dapat kembali dengan arahan ini:
Dapatkan Semua Data
Dalam REST API terakhir kami, kami menanyakan data menggunakan ID tertentu. Kali ini, kami akan mendapat semua data dalam koleksi Solr kami.
Dapatkan Objek dengan ID
curl http: // localhost: 8983 / solr / linux_hint_collection / pilih?q = *: *Inilah yang kita dapat kembali dengan arahan ini:
Perhatikan bahawa kami telah menggunakan '*: *' dalam parameter pertanyaan. Ini menentukan bahawa Solr harus mengembalikan semua data yang ada dalam koleksi. Walaupun kita telah menetapkan bahawa semua data harus dikembalikan, Solr memahami bahawa pengumpulannya mungkin mempunyai sejumlah besar data di dalamnya dan sebagainya, ia hanya akan mengembalikan 10 dokumen pertama.
Memadamkan Semua Data
Hingga kini, semua API yang kami cuba menggunakan format JSON. Kali ini, kami akan mencuba format pertanyaan XML. Menggunakan format XML sangat serupa dengan JSON kerana XML juga bersifat deskriptif sendiri.
Mari cuba perintah untuk menghapus semua data yang ada dalam koleksi kami.
Memadamkan Semua Data
curl "http: // localhost: 8983 / solr / linux_hint_collection / kemas kini?komit = benar "-H" Kandungan-Jenis: teks / xml "--data-binari" *: * "Inilah yang kita dapat kembali dengan arahan ini:
Padamkan semua data menggunakan pertanyaan XML
Sekarang, jika kita sekali lagi mencuba mendapatkan semua data, kita akan melihat bahawa tidak ada data yang tersedia sekarang:
Dapatkan Semua data
Jumlah Bilangan Objek
Untuk perintah CURL terakhir, mari kita lihat perintah yang dengannya kita dapat mencari jumlah objek yang terdapat dalam indeks. Berikut adalah arahan yang sama:
Jumlah Bilangan Objek
curl http: // localhost: 8983 / solr / linux_hint_collection / pertanyaan?debug = pertanyaan & q = *: *Inilah yang kita dapat kembali dengan arahan ini:
Hitung bilangan Objek
Kesimpulannya
Dalam pelajaran ini, kami melihat bagaimana kami dapat menggunakan Apache Solr dan lulus pertanyaan menggunakan keriting dalam format JSON dan XML. Kami juga melihat bahawa panel admin Solr berguna dengan cara yang sama seperti semua perintah curl yang kami pelajari.