Sphinx adalah mesin carian teks penuh sumber terbuka dan bebas yang dapat disatukan ke dalam pelbagai aplikasi web untuk memberikan hasil carian yang cepat dan berkualiti tinggi.
Artikel ini akan menunjukkan kepada anda cara menyiapkan mesin carian Sphinx untuk mengindeks dan mencari contoh pangkalan data MariaDB pada contoh pelayan Vultr CentOS 7. Ini akan memberi anda beberapa idea awal tentang bagaimana menggunakan Sphinx dalam projek anda.
Prasyarat
- Terapkan contoh pelayan CentOS 7 baru dari panel kawalan Vultr.
- Gunakan pengguna sudo bukan root untuk log masuk dari terminal SSH anda. Lihat cara membuat pengguna sudo dalam artikel ini .
Langkah 1: Kemas kini sistem anda
sudo yum update -y && sudo reboot
Setelah reboot sistem selesai, gunakan pengguna sudo yang sama untuk log masuk semula.
Sphinx dapat digunakan untuk mencari berbagai sumber data, seperti pangkalan data SQL, fail teks biasa, fail HTML, dll. Di sini, mari kita lihat bagaimana menggunakan Sphinx untuk melakukan carian pada pangkalan data MariaDB.
Pasang MariaDB menggunakan YUM:
sudo yum install mariadb mariadb-server
Mulakan perkhidmatan MariaDB:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Untuk tujuan keselamatan, lakukan pemasangan MySQL yang selamat:
sudo /usr/bin/mysql_secure_installation
Selesaikan prosedur ini mengikut arahan berikut:
Enter current password for root (enter for none): Press Enter
Set root password? [Y/n]: Input Y, then press Enter
New password: Input a new password for root, press Enter
Re-enter new password: Input the same password again, then press Enter
Remove anonymous users? [Y/n]: Input Y, then press Enter
Disallow root login remotely? [Y/n]: Input Y, then press Enter
Remove test database and access to it? [Y/n]: Input Y, then press Enter
Reload privilege tables now? [Y/n]: Input Y, then press Enter
Setelah pemasangan MySQL yang selamat selesai, anda perlu menetapkan kata laluan baru untuk "root" pengguna MySQL. Dalam tutorial ini, saya akan menyebutnya sebagai "kata laluan anda".
Langkah 3: Pasang Sphinx terkini
Untuk memasang versi terbaru Sphinx, anda perlu memuat turun pakej rpm yang betul dari laman web rasmi Sphinx:
cd ~
wget http://sphinxsearch.com/files/sphinx-2.2.10-1.rhel7.x86_64.rpm
sudo yum install sphinx-2.2.10-1.rhel7.x86_64.rpm
Langkah 4: Buat pangkalan data untuk ujian
Gunakan perintah MySQL berikut untuk membuat pangkalan data bernama "test":
mysql -u root -p -e "CREATE DATABASE test"
Apabila anda diminta memberikan kata laluan, masukkan kata sandi yang anda tetapkan lebih awal dan kemudian tekan Enter.
Sekarang, import data ujian dari fail sql contoh Sphinx:
mysql -u root -p test < /usr/share/doc/sphinx-2.2.10/example.sql
Sekali lagi, masukkan kata laluan yang sama dan kemudian tekan Enter untuk menyelesaikan import.
Buka fail konfigurasi Sphinx /etc/sphinx/sphinx.conf
:
sudo vi /etc/sphinx/sphinx.conf
Buat masa ini, anda hanya perlu menyiapkan nama pengguna sql_user
dan kata laluan MySQL sql_pass
, seperti:
sql_user = root
sql_pass = yourpassword
Simpan dan tutup:
:wq
Langkah 6: Mulakan pengindeks dan cari daemon
Kedua-dua pengindeks dan carian adalah komponen penting Sphinx. Indexer bertugas mengumpulkan data dari sumber data, dan searchd adalah bahagian dari mesin pencari yang sebenarnya mengendalikan pencarian.
Pastikan untuk menjalankan perintah berikut dengan teratur, atau anda akan menghadapi kesilapan.
sudo indexer --all
sudo searchd
Untuk mengemas kini status indeks secara berkala, buat kerja cron:
sudo crontab -e
Masukkan entri berikut:
0 * * * * /usr/bin/indexer --rotate --config /etc/sphinx/sphinx.conf --all
Simpan dan tutup:
:wq
Pekerjaan cron ini akan mengemas kini status indeks setiap jam.
Langkah 7: Uji mesin carian Sphinx anda
Anda boleh menggunakan skrip python yang telah ditentukan untuk menguji persediaan Sphinx anda:
python /usr/share/sphinx/api/test.py this is my test document
Perintah ini akan mencari "ini adalah dokumen ujian saya" dalam contoh pangkalan data MySQL dan kemudian menunjukkan hasil carian kepada anda.
Itu mengakhiri tutorial ini. Sphinx juga menyertakan API carian, yang dapat digunakan dari proyek PHP, Perl, Python, Ruby atau Java anda sendiri. Lebih banyak maklumat boleh didapati di laman web rasmi Sphinx.