Preduvjeti
Korak 1: Ažurirajte svoj sustav
Korak 2: Instalirajte i konfigurirajte MariaDB
Korak 3: Instalirajte najnoviji Sphinx
Korak 4: Napravite bazu podataka za testiranje
Korak 5: Konfigurirajte Sphinx
Korak 6: Pokrenite indekser i searchd demone
Korak 7: Testirajte svoju tražilicu Sphinx
Sphinx je besplatna tražilica punog teksta otvorenog koda koja se može integrirati u razne web aplikacije za pružanje brzih i visokokvalitetnih rezultata pretraživanja.
Ovaj članak će vam pokazati kako postaviti tražilicu Sphinx za indeksiranje i pretraživanje primjera MariaDB baze podataka na instanci poslužitelja Vultr CentOS 7. Dat će vam neke preliminarne ideje kako koristiti Sphinx u svom projektu.
Preduvjeti
- Postavite novu instancu poslužitelja CentOS 7 s upravljačke ploče Vultr.
- Za prijavu sa svog SSH terminala koristite sudo korisnika koji nije root. Pogledajte kako stvoriti sudo korisnika u ovom članku .
Korak 1: Ažurirajte svoj sustav
sudo yum update -y && sudo reboot
Nakon što ponovno pokretanje sustava završi, upotrijebite istog sudo korisnika da se ponovno prijavite.
Sphinx se može koristiti za pretraživanje različitih izvora podataka, kao što su SQL baze podataka, obične tekstualne datoteke, HTML datoteke, itd. Evo, pogledajmo kako koristiti Sphinx za obavljanje pretraživanja u bazi podataka MariaDB.
Instalirajte MariaDB koristeći YUM:
sudo yum install mariadb mariadb-server
Pokrenite uslugu MariaDB:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Iz sigurnosnih razloga, izvršite sigurnu instalaciju MySQL:
sudo /usr/bin/mysql_secure_installation
Završite ovaj postupak u skladu sa sljedećim uputama:
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
Nakon završetka sigurne MySQL instalacije, morat ćete postaviti novu lozinku za MySQL korisnika "root". U ovom vodiču nazvat ću ga "vaša lozinka".
Korak 3: Instalirajte najnoviji Sphinx
Da biste instalirali najnoviju verziju Sphinxa, morate preuzeti odgovarajući rpm paket sa službene web stranice Sphinxa:
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
Korak 4: Napravite bazu podataka za testiranje
Upotrijebite sljedeće MySQL naredbe za stvaranje baze podataka pod nazivom "test":
mysql -u root -p -e "CREATE DATABASE test"
Kada se od vas zatraži da unesete lozinku, unesite onu koju ste prethodno postavili, a zatim pritisnite Enter.
Sada uvezite testne podatke iz sql datoteke primjera Sphinx:
mysql -u root -p test < /usr/share/doc/sphinx-2.2.10/example.sql
Ponovno unesite istu lozinku, a zatim pritisnite Enter za završetak uvoza.
Otvorite konfiguracijsku datoteku Sphinx /etc/sphinx/sphinx.conf:
sudo vi /etc/sphinx/sphinx.conf
Za sada trebate samo postaviti MySQL korisničko ime sql_useri lozinku sql_pass, što bi bilo:
sql_user = root
sql_pass = yourpassword
Spremi i zatvori:
:wq
Korak 6: Pokrenite indekser i searchd demone
I indexer i searchd su važne komponente Sphinxa. Indexer je zadužen za prikupljanje podataka iz izvora podataka, a searchd je dio tražilice koji zapravo upravlja pretragama.
Obavezno izvodite sljedeće naredbe uredno, inače ćete naići na pogreške.
sudo indexer --all
sudo searchd
Da biste redovito ažurirali status indeksa, kreirajte cron posao:
sudo crontab -e
Unesite sljedeći unos:
0 * * * * /usr/bin/indexer --rotate --config /etc/sphinx/sphinx.conf --all
Spremi i zatvori:
:wq
Ovaj cron posao ažurirat će status indeksa svaki sat.
Korak 7: Testirajte svoju tražilicu Sphinx
Možete koristiti unaprijed definiranu python skriptu za testiranje svoje postavke Sphinxa:
python /usr/share/sphinx/api/test.py this is my test document
Ova naredba će pretražiti "ovo je moj testni dokument" u primjeru MySQL baze podataka, a zatim će vam pokazati rezultat pretraživanja.
Time je ovaj vodič završen. Sphinx također uključuje API za pretraživanje, koji se može koristiti iz vlastitih PHP, Perl, Python, Ruby ili Java projekata. Više informacija dostupno je na službenoj stranici Sphinx.