Apache Solr

Pengenalan kepada Apache Solr. Bahagian 3 Menyambung ke PostgreSQL

Pengenalan kepada Apache Solr. Bahagian 3 Menyambung ke PostgreSQL
Apache Solr [1] adalah kerangka mesin carian yang ditulis di Java dan berdasarkan perpustakaan carian Lucene [6]. Dalam dua artikel sebelumnya, kami menyiapkan Apache Solr pada Debian GNU / Linux 11 yang akan segera dirilis, memulai satu inti data, memuat naik data contoh, menunjukkan bagaimana untuk meminta data output dengan cara yang berbeda, dan setelah proses ia.

Ini adalah artikel susulan dari dua sebelumnya [2,3]. Sejauh ini, kami memuatkan data yang diindeks ke dalam penyimpanan Apache Solr dan menanyakan data mengenai perkara itu. Sekarang, anda akan belajar bagaimana menghubungkan sistem pengurusan pangkalan data relasional PostgreSQL [4] ke Apache Solr dan melakukan pencarian di dalamnya menggunakan kemampuan Solr. Ini menjadikan perlu beberapa langkah yang dijelaskan di bawah dengan lebih terperinci - menyiapkan PostgreSQL, menyiapkan struktur data dalam pangkalan data PostgreSQL, dan menghubungkan PostgreSQL ke Apache Solr, dan melakukan pencarian kami.

Langkah 1: Menyiapkan PostgreSQL

Mengenai PostgreSQL - maklumat ringkas

PostgreSQL adalah sistem pengurusan pangkalan data yang berkaitan dengan objek. Telah tersedia untuk digunakan dan telah mengalami perkembangan aktif selama lebih dari 30 tahun sekarang. Ia berasal dari University of California, di mana ia dilihat sebagai pengganti Ingres [7].

Sejak awal, ia tersedia di bawah sumber terbuka (GPL), percuma untuk digunakan, diubah suai dan diedarkan. Ia digunakan secara meluas dan sangat popular di industri ini. PostgreSQL pada mulanya dirancang untuk berjalan pada sistem UNIX / Linux sahaja dan kemudiannya dirancang untuk berjalan pada sistem lain seperti Microsoft Windows, Solaris, dan BSD. Perkembangan PostgreSQL terkini sedang dilakukan di seluruh dunia oleh banyak sukarelawan.

Persediaan PostgreSQL

Sekiranya belum selesai, pasang pelayan dan klien PostgreSQL secara tempatan, misalnya, pada Debian GNU / Linux seperti yang dijelaskan di bawah menggunakan apt. Dua artikel berkaitan dengan PostgreSQL - artikel Yunis Said [5] membincangkan penyediaan di Ubuntu. Namun, dia hanya menggaru permukaannya sedangkan artikel saya sebelumnya memfokuskan pada gabungan PostgreSQL dengan sambungan GIS PostGIS [6]. Penerangan di sini merangkum semua langkah yang kami perlukan untuk penyediaan ini.

# apt pasang postgresql-13 postgresql-client-13

Seterusnya, sahkan bahawa PostgreSQL berjalan dengan bantuan arahan pg_isready. Ini adalah utiliti yang merupakan sebahagian daripada pakej PostgreSQL.

# pg_ sudah
/ var / run / postgresql: 5432 - Sambungan diterima

Output di atas menunjukkan bahawa PostgreSQL sudah siap dan menunggu sambungan masuk pada port 5432. Kecuali ditetapkan sebaliknya, ini adalah konfigurasi standard. Langkah seterusnya adalah menetapkan kata laluan untuk pengguna UNIX Postgres:

# passwd Postgres

Perlu diingat bahawa PostgreSQL mempunyai pangkalan data penggunanya sendiri, sedangkan pengguna PostgreSQL pentadbiran Postgres belum mempunyai kata laluan. Langkah sebelumnya harus dilakukan untuk pengguna PostgreSQL Postgres juga:

# su - Postgres
$ psql -c "ALTER USER Postgres WITH PASSWORD 'kata laluan';"

Untuk kesederhanaan, kata laluan yang dipilih hanyalah kata laluan dan harus diganti dengan frasa kata laluan yang lebih selamat pada sistem selain daripada ujian. Perintah di atas akan mengubah jadual pengguna dalaman PostgreSQL. Ketahui tanda petikan yang berbeza - kata laluan dalam tanda petik tunggal dan pertanyaan SQL dalam petikan berganda untuk mengelakkan jurubahasa shell menilai perintah dengan cara yang salah. Juga, tambahkan titik koma setelah pertanyaan SQL sebelum tanda petik berganda di akhir arahan.

Seterusnya, untuk alasan pentadbiran, sambungkan ke PostgreSQL sebagai pengguna Postgres dengan kata laluan yang dibuat sebelumnya. Perintah itu dipanggil psql:

$ psql

Sambungan dari Apache Solr ke pangkalan data PostgreSQL dilakukan sebagai pengguna solr. Oleh itu, mari kita tambahkan solr pengguna PostgreSQL dan tetapkan kata laluan yang sesuai untuknya dalam satu masa:

$ BUAT PENGGUNA solr DENGAN PASSWD 'solr';

Untuk kesederhanaan, kata laluan yang dipilih hanya solr dan harus diganti dengan frasa kata laluan yang lebih selamat pada sistem yang sedang dihasilkan.

Langkah 2: Menyiapkan struktur data

Untuk menyimpan dan mengambil data, diperlukan pangkalan data yang sesuai. Perintah di bawah ini membuat pangkalan data kereta yang menjadi milik pengguna dan akan digunakan kemudian.

$ BUAT kereta DATABASE DENGAN PEMILIK = solr;

Kemudian, sambungkan ke kereta pangkalan data yang baru dibuat sebagai pengguna solr. Pilihan -d (pilihan pendek untuk -dbname) menentukan nama pangkalan data, dan -U (pilihan pendek untuk-nama pengguna) nama pengguna PostgreSQL.

$ psql -d kereta -U solr

Pangkalan data kosong tidak berguna, tetapi jadual berstruktur dengan isi kandungannya. Buat struktur kereta meja seperti berikut:

$ BUAT kereta JADUAL (
id int,
buat varchar (100),
model varchar (100),
keterangan varchar (100),
varchar warna (50),
harga int
);

Kereta meja mengandungi enam medan data - id (integer), make (rentetan panjang 100), model (rentetan panjang 100), deskripsi (rentetan panjang 100), warna (rentetan panjang 50), dan harga (bilangan bulat). Untuk mempunyai beberapa sampel data tambahkan nilai berikut ke kereta meja sebagai pernyataan SQL:

$ INSERT INTO kereta (id, jenama, model, keterangan, warna, harga)
NILAI (1, 'BMW', 'X5', 'Kereta sejuk', 'kelabu', 45000);
$ INSERT INTO kereta (id, jenama, model, keterangan, warna, harga)
NILAI (2, 'Audi', 'Quattro', 'kereta lumba', 'putih', 30000);

Hasilnya adalah dua entri yang mewakili BMW X5 berwarna abu-abu dengan harga USD 45000, digambarkan sebagai kereta sejuk, dan kereta lumba putih Audi Quattro yang berharga USD 30000.

Seterusnya, keluar dari konsol PostgreSQL menggunakan \ q, atau berhenti.

$ \ q

Langkah 3: Menghubungkan PostgreSQL dengan Apache Solr

Sambungan PostgreSQL dan Apache Solr didasarkan pada dua kepingan perisian - pemacu Java untuk pemacu PostgreSQL yang disebut pemacu Java Database Connectivity (JDBC) dan sambungan ke konfigurasi pelayan Solr. Pemacu JDBC menambahkan antara muka Java ke PostgreSQL, dan entri tambahan dalam konfigurasi Solr memberitahu Solr cara menyambung ke PostgreSQL menggunakan pemacu JDBC.

Menambah pemacu JDBC dilakukan sebagai root pengguna seperti berikut, dan memasang pemacu JDBC dari repositori pakej Debian:

# apt-get pasang libpostgresql-jdbc-java

Di sisi Apache Solr, simpul yang sepadan juga harus ada. Sekiranya belum selesai, sebagai pengguna UNIX, buat kereta simpul seperti berikut:

$ bin / solr mencipta -c kereta

Seterusnya, panjangkan konfigurasi Solr untuk nod yang baru dibuat. Tambahkan baris di bawah ke fail / var / solr / data / cars / conf / solrconfig.xml:

db-data-konfigurasi.xml

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

Garis di atas sesuai dengan tetapan sebelumnya dan menentukan pemacu JDBC, tentukan port 5432 untuk disambungkan ke PostgreSQL DBMS sebagai pengguna solr dengan kata laluan yang sesuai, dan tetapkan pertanyaan SQL yang akan dijalankan dari PostgreSQL. Untuk kesederhanaan, itu adalah pernyataan SELECT yang merebut keseluruhan kandungan jadual.

Seterusnya, mulakan semula pelayan Solr untuk mengaktifkan perubahan anda. Sebagai root pengguna melaksanakan arahan berikut:

# systemctl mulakan semula solr

Langkah terakhir adalah mengimport data, misalnya, menggunakan antara muka web Solr. Kotak pilihan nod memilih kereta simpul, kemudian dari menu Node di bawah entri Dataimport diikuti dengan pemilihan import penuh dari menu Perintah kanan ke sana. Akhirnya, tekan butang Laksanakan. Gambar di bawah menunjukkan bahawa Solr berjaya mengindeks data.

Langkah 4: Meminta data dari DBMS

Artikel sebelumnya [3] membahas pertanyaan data secara terperinci, mengambil hasilnya, dan memilih format output yang diinginkan - CSV, XML, atau JSON. Permintaan data dilakukan sama dengan apa yang telah anda pelajari sebelumnya, dan tidak ada perbezaan yang dapat dilihat oleh pengguna. Solr melakukan semua pekerjaan di belakang tabir dan berkomunikasi dengan PostgreSQL DBMS yang dihubungkan seperti yang ditentukan dalam teras atau kluster Solr yang dipilih.

Penggunaan Solr tidak berubah, dan pertanyaan dapat disampaikan melalui antara muka admin Solr atau menggunakan curl atau wget pada baris perintah. Anda mengirim permintaan Dapatkan dengan URL tertentu ke pelayan Solr (pertanyaan, kemas kini, atau hapus). Solr memproses permintaan menggunakan DBMS sebagai unit penyimpanan dan mengembalikan hasil permintaan tersebut. Seterusnya, proseskan jawapannya secara tempatan.

Contoh di bawah menunjukkan output pertanyaan “/ select?q = *. * ”Dalam format JSON di antara muka pentadbir Solr. Data diambil dari kereta pangkalan data yang kami buat sebelumnya.

Kesimpulannya

Artikel ini menunjukkan cara meminta pangkalan data PostgreSQL dari Apache Solr dan menerangkan penyediaan yang sesuai. Pada bahagian seterusnya dari siri ini, anda akan belajar bagaimana menggabungkan beberapa nod Solr ke dalam kelompok Solr.

Mengenai pengarang

Jacqui Kabeta adalah pakar persekitaran, penyelidik, pelatih, dan mentor yang gemar. Di beberapa negara Afrika, dia telah bekerja di industri IT dan persekitaran NGO.

Frank Hofmann adalah pemaju IT, pelatih, dan pengarang dan lebih suka bekerja dari Berlin, Geneva, dan Cape Town. Pengarang bersama Buku Pengurusan Pakej Debian tersedia dari dpmb.org

Pautan dan Rujukan

Cara Menggunakan AutoKey untuk Mengautomasikan Permainan Linux
AutoKey adalah utiliti automasi desktop untuk Linux dan X11, yang diprogramkan dalam Python 3, GTK dan Qt. Dengan menggunakan skrip dan fungsi MACRO, ...
Cara Menunjukkan Kaunter FPS dalam Permainan Linux
Permainan Linux mendapat dorongan utama ketika Valve mengumumkan sokongan Linux untuk klien Steam dan permainan mereka pada tahun 2012. Sejak itu, ban...
Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...