Apache Solr

Pengantar Apache Solr. Bagian 3 Menghubungkan ke PostgreSQL

Pengantar Apache Solr. Bagian 3 Menghubungkan ke PostgreSQL
Apache Solr [1] adalah kerangka kerja mesin pencari yang ditulis dalam Java dan didasarkan pada perpustakaan pencarian Lucene [6]. Dalam dua artikel sebelumnya, kami menyiapkan Apache Solr pada Debian GNU/Linux 11 yang akan segera dirilis, memprakarsai satu inti data, mengunggah contoh data, mendemonstrasikan cara mengkueri data keluaran dengan cara yang berbeda, dan pasca-proses saya t.

Ini adalah artikel lanjutan dari dua artikel sebelumnya [2,3]. Sejauh ini, kami memuat data yang diindeks ke penyimpanan Apache Solr dan menanyakan data tentang itu. Sekarang, Anda akan belajar bagaimana menghubungkan sistem manajemen basis data relasional PostgreSQL [4] ke Apache Solr dan melakukan pencarian di dalamnya menggunakan kemampuan Solr. Ini membuatnya perlu melakukan beberapa langkah yang dijelaskan di bawah ini secara lebih rinci - menyiapkan PostgreSQL, menyiapkan struktur data dalam database PostgreSQL, dan menghubungkan PostgreSQL ke Apache Solr, dan melakukan pencarian kami.

Langkah 1: Menyiapkan PostgreSQL

Tentang PostgreSQL - info singkat

PostgreSQL adalah sistem manajemen basis data relasional objek yang cerdik. Ini telah tersedia untuk digunakan dan telah mengalami pengembangan aktif selama lebih dari 30 tahun sekarang. Itu berasal dari University of California, di mana ia dianggap sebagai penerus Ingres [7].

Sejak awal, ini tersedia di bawah sumber terbuka (GPL), gratis untuk digunakan, dimodifikasi, dan didistribusikan. Ini banyak digunakan dan sangat populer di industri. PostgreSQL awalnya dirancang untuk berjalan di sistem UNIX/Linux saja dan kemudian dirancang untuk berjalan di sistem lain seperti Microsoft Windows, Solaris, dan BSD. Pengembangan PostgreSQL saat ini sedang dilakukan di seluruh dunia oleh banyak sukarelawan.

Pengaturan PostgreSQL

Jika belum selesai, instal server dan klien PostgreSQL secara lokal, misalnya pada Debian GNU/Linux seperti yang dijelaskan di bawah ini menggunakan apt. Dua artikel membahas PostgreSQL - Artikel Yunis Said [5] membahas pengaturan di Ubuntu. Namun, dia hanya menggores permukaan sementara artikel saya sebelumnya berfokus pada kombinasi PostgreSQL dengan ekstensi GIS PostGIS [6]. Deskripsi di sini merangkum semua langkah yang kita perlukan untuk pengaturan khusus ini.

# apt install postgresql-13 postgresql-client-13

Selanjutnya, verifikasi bahwa PostgreSQL berjalan dengan bantuan perintah pg_isready. Ini adalah utilitas yang merupakan bagian dari paket PostgreSQL.

# pg_siap
/var/run/postgresql:5432 - Koneksi diterima

Output di atas menunjukkan bahwa PostgreSQL siap dan menunggu koneksi masuk pada port 5432. Kecuali ditentukan lain, ini adalah konfigurasi standar. Langkah selanjutnya adalah mengatur kata sandi untuk pengguna UNIX Postgres:

#passwd Postgres

Perlu diingat bahwa PostgreSQL memiliki database pengguna sendiri, sedangkan pengguna PostgreSQL administratif Postgres belum memiliki kata sandi. Langkah sebelumnya juga harus dilakukan untuk pengguna PostgreSQL Postgres:

# su - Postgres
$ psql -c "ALTER USER Postgres DENGAN PASSWORD 'password';"

Untuk kesederhanaan, kata sandi yang dipilih hanyalah kata sandi dan harus diganti dengan frasa kata sandi yang lebih aman pada sistem selain pengujian. Perintah di atas akan mengubah tabel pengguna internal PostgreSQL. Waspadai tanda kutip yang berbeda - kata sandi dalam tanda kutip tunggal dan kueri SQL dalam tanda kutip ganda untuk mencegah juru bahasa Shell mengevaluasi perintah dengan cara yang salah. Juga, tambahkan titik koma setelah kueri SQL sebelum tanda kutip ganda di akhir perintah.

Selanjutnya, untuk alasan administratif, sambungkan ke PostgreSQL sebagai pengguna Postgres dengan kata sandi yang dibuat sebelumnya. Perintahnya disebut psql:

$ psql

Menghubungkan dari Apache Solr ke database PostgreSQL dilakukan sebagai pengguna solr. Jadi, mari tambahkan solr pengguna PostgreSQL dan atur solr kata sandi yang sesuai untuknya sekaligus:

$ BUAT USER solr DENGAN PASSWD 'solr';

Untuk kesederhanaan, kata sandi yang dipilih hanya solr dan harus diganti dengan frasa kata sandi yang lebih aman pada sistem yang sedang diproduksi.

Langkah 2: Mempersiapkan struktur data

Untuk menyimpan dan mengambil data, diperlukan database yang sesuai. Perintah di bawah ini membuat database mobil milik pengguna solr dan akan digunakan nanti.

$ CREATE DATABASE mobil DENGAN PEMILIK = solr;

Kemudian, sambungkan ke mobil database yang baru dibuat sebagai pengguna solr. Opsi -d (opsi singkat untuk -dbname) mendefinisikan nama database, dan -U (opsi singkat untuk -username) nama pengguna PostgreSQL.

$ psql -d mobil -U solr

Basis data kosong tidak berguna, tetapi tabel terstruktur dengan konten berguna. Buat struktur tabel mobil sebagai berikut:

$ BUAT TABEL mobil (
id ke dalam,
buat varchar(100),
model varchar(100),
deskripsi varchar(100),
warna varchar(50),
harga masuk
);

Mobil tabel berisi enam bidang data - id (bilangan bulat), make (string dengan panjang 100), model (string dengan panjang 100), deskripsi (string dengan panjang 100), warna (string dengan panjang 50), dan harga (bilangan bulat). Untuk mendapatkan beberapa contoh data, tambahkan nilai berikut ke tabel mobil sebagai pernyataan SQL:

$ INSERT INTO mobil (id, merek, model, deskripsi, warna, harga)
NILAI (1, 'BMW', 'X5', 'Mobil keren', 'abu-abu', 45000);
$ INSERT INTO mobil (id, merek, model, deskripsi, warna, harga)
NILAI (2, 'Audi', 'Quattro', 'mobil balap', 'putih', 30000);

Hasilnya adalah dua entri mewakili BMW X5 abu-abu seharga USD 45000, digambarkan sebagai mobil keren, dan mobil balap putih Audi Quattro seharga USD 30000.

Selanjutnya, keluar dari konsol PostgreSQL menggunakan \q, atau keluar.

$ \q

Langkah 3: Menghubungkan PostgreSQL dengan Apache Solr

Koneksi PostgreSQL dan Apache Solr didasarkan pada dua perangkat lunak - driver Java untuk PostgreSQL yang disebut driver Java Database Connectivity (JDBC) dan ekstensi ke konfigurasi server Solr. Driver JDBC menambahkan antarmuka Java ke PostgreSQL, dan entri tambahan dalam konfigurasi Solr memberi tahu Solr cara terhubung ke PostgreSQL menggunakan driver JDBC.

Menambahkan driver JDBC dilakukan sebagai root pengguna sebagai berikut, dan menginstal driver JDBC dari repositori paket Debian:

# apt-get install libpostgresql-jdbc-java

Di sisi Apache Solr, node yang sesuai juga harus ada. Jika belum selesai, sebagai solr pengguna UNIX, buat node mobil sebagai berikut:

$ bin/solr buat -c mobil

Selanjutnya, perluas konfigurasi Solr untuk node yang baru dibuat. Tambahkan baris di bawah ini ke file /var/solr/data/cars/conf/solrconfig.xml:

db-data-config.xml

Selanjutnya buat file /var/solr/data/cars/conf/data-config.xml, dan simpan konten berikut di dalamnya:

Baris di atas sesuai dengan pengaturan sebelumnya dan menentukan driver JDBC, tentukan port 5432 untuk terhubung ke DBMS PostgreSQL sebagai pengguna solr dengan kata sandi yang sesuai, dan atur kueri SQL yang akan dieksekusi dari PostgreSQL. Untuk kesederhanaan, ini adalah pernyataan SELECT yang mengambil seluruh konten tabel.

Selanjutnya, restart server Solr untuk mengaktifkan perubahan Anda. Sebagai root pengguna, jalankan perintah berikut:

# systemctl restart solr

Langkah terakhir adalah mengimpor data, misalnya menggunakan antarmuka web Solr. Kotak pemilihan node memilih node mobil, kemudian dari menu Node di bawah entri Dataimport diikuti dengan pemilihan impor penuh dari menu Command langsung ke sana. Terakhir, tekan tombol Jalankan. Gambar di bawah ini menunjukkan bahwa Solr telah berhasil mengindeks data.

Langkah 4: Meminta data dari DBMS

Artikel sebelumnya [3] membahas query data secara detail, mengambil hasil, dan memilih format output yang diinginkan - CSV, XML, atau JSON. Mengkueri data dilakukan dengan cara yang sama seperti yang telah Anda pelajari sebelumnya, dan tidak ada perbedaan yang terlihat oleh pengguna. Solr melakukan semua pekerjaan di belakang layar dan berkomunikasi dengan DBMS PostgreSQL yang terhubung seperti yang didefinisikan dalam inti atau cluster Solr yang dipilih.

Penggunaan Solr tidak berubah, dan kueri dapat dikirimkan melalui antarmuka admin Solr atau menggunakan curl atau wget pada baris perintah. Anda mengirim permintaan Dapatkan dengan URL tertentu ke server Solr (kueri, perbarui, atau hapus). Solr memproses permintaan menggunakan DBMS sebagai unit penyimpanan dan mengembalikan hasil permintaan. Selanjutnya, pasca-proses jawabannya secara lokal.

Contoh di bawah ini menunjukkan output dari query “/select?q=*. *” dalam format JSON di antarmuka admin Solr. Data diambil dari database mobil yang kita buat tadi.

Kesimpulan

Artikel ini menunjukkan cara membuat kueri database PostgreSQL dari Apache Solr dan menjelaskan pengaturan yang sesuai. Di bagian selanjutnya dari seri ini, Anda akan belajar cara menggabungkan beberapa node Solr ke dalam cluster Solr.

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

Instal Game Strategi OpenRA terbaru di Ubuntu Linux
OpenRA adalah mesin game Strategi Waktu Nyata Libre/Gratis yang membuat ulang game Westwood awal seperti Command & Conquer klasik: Red Alert. Mod yang...
Instal Dolphin Emulator terbaru untuk Gamecube & Wii di Linux
Dolphin Emulator memungkinkan Anda memainkan game Gamecube & Wii pilihan Anda di Komputer Pribadi (PC) Linux. Menjadi emulator game sumber terbuka da...
Cara Menggunakan Cheat Engine GameConqueror di Linux
Artikel ini mencakup panduan tentang menggunakan mesin cheat GameConqueror di Linux. Banyak pengguna yang bermain game di Windows sering menggunakan a...