Requisits previs
Pas 1: actualitzeu el vostre sistema
Pas 2: instal·leu i configureu MariaDB
Pas 3: instal·leu l'última Sphinx
Pas 4: creeu una base de dades per fer proves
Pas 5: configureu Sphinx
Pas 6: inicieu l'indexador i els dimonis searchd
Pas 7: prova el teu motor de cerca Sphinx
Sphinx és un motor de cerca de text complet gratuït i de codi obert que es pot integrar en diverses aplicacions web per proporcionar resultats de cerca ràpids i d'alta qualitat.
Aquest article us mostrarà com configurar un motor de cerca Sphinx per indexar i cercar una base de dades MariaDB d'exemple en una instància del servidor Vultr CentOS 7. Us donarà algunes idees preliminars sobre com utilitzar Sphinx al vostre projecte.
Requisits previs
- Desplegueu una nova instància del servidor CentOS 7 des del tauler de control de Vultr.
- Utilitzeu un usuari sudo que no sigui root per iniciar sessió des del vostre terminal SSH. Vegeu com crear un usuari sudo en aquest article .
Pas 1: actualitzeu el vostre sistema
sudo yum update -y && sudo reboot
Un cop finalitzi el reinici del sistema, utilitzeu el mateix usuari sudo per iniciar sessió de nou.
Sphinx es pot utilitzar per cercar diverses fonts de dades, com ara bases de dades SQL, fitxers de text senzill, fitxers HTML, etc. Aquí, fem una ullada a com utilitzar Sphinx per fer cerques en una base de dades MariaDB.
Instal·leu MariaDB amb YUM:
sudo yum install mariadb mariadb-server
Inicieu el servei MariaDB:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Per motius de seguretat, realitzeu la instal·lació segura de MySQL:
sudo /usr/bin/mysql_secure_installation
Finalitzeu aquest procediment d'acord amb les instruccions següents:
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
Un cop finalitzada la instal·lació segura de MySQL, haureu d'establir una nova contrasenya per a l'usuari de MySQL "root". En aquest tutorial, m'hi referiré com a "la teva contrasenya".
Pas 3: instal·leu l'última Sphinx
Per instal·lar la darrera versió de Sphinx, heu de descarregar el paquet rpm adequat des del lloc web oficial de 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
Pas 4: creeu una base de dades per fer proves
Utilitzeu les ordres MySQL següents per crear una base de dades anomenada "test":
mysql -u root -p -e "CREATE DATABASE test"
Quan se us demani que proporcioneu una contrasenya, introduïu la que heu establert anteriorment i, a continuació, premeu Intro.
Ara, importeu dades de prova d'un fitxer sql d'exemple de Sphinx:
mysql -u root -p test < /usr/share/doc/sphinx-2.2.10/example.sql
De nou, introduïu la mateixa contrasenya i, a continuació, premeu Intro per finalitzar la importació.
Obriu el fitxer de configuració de Sphinx /etc/sphinx/sphinx.conf:
sudo vi /etc/sphinx/sphinx.conf
De moment, només heu de configurar el nom d'usuari de MySQL sql_useri la contrasenya sql_pass, que serien:
sql_user = root
sql_pass = yourpassword
Desa i surt:
:wq
Pas 6: inicieu l'indexador i els dimonis searchd
Tant l'indexador com el searchd són components importants de Sphinx. Indexer s'encarrega de recopilar dades de la font de dades, i searchd és la part del motor de cerca que realment gestiona les cerques.
Assegureu-vos d'executar les ordres següents ordenadament, o trobareu errors.
sudo indexer --all
sudo searchd
Per actualitzar l'estat de l'índex regularment, creeu un treball cron:
sudo crontab -e
Introduïu l'entrada següent:
0 * * * * /usr/bin/indexer --rotate --config /etc/sphinx/sphinx.conf --all
Desa i surt:
:wq
Aquest treball de cron actualitzarà l'estat de l'índex cada hora.
Pas 7: prova el teu motor de cerca Sphinx
Podeu utilitzar un script Python predefinit per provar la vostra configuració de Sphinx:
python /usr/share/sphinx/api/test.py this is my test document
Aquesta ordre cercarà "aquest és el meu document de prova" a la base de dades MySQL d'exemple i després us mostrarà el resultat de la cerca.
Així conclou aquest tutorial. Sphinx també inclou una API de cerca, que es pot utilitzar des dels vostres projectes PHP, Perl, Python, Ruby o Java. Hi ha més informació disponible al lloc web oficial de Sphinx.