Forutsetninger
Trinn 1: Oppdater systemet ditt
Trinn 2: Installer og konfigurer MariaDB
Trinn 3: Installer den nyeste Sphinx
Trinn 4: Opprett en database for testing
Trinn 5: Konfigurer Sphinx
Trinn 6: Start indekseringsprogrammet og søk etter demoner
Trinn 7: Test Sphinx-søkemotoren din
Sphinx er en gratis og åpen kildekode fulltekst søkemotor som kan integreres i ulike nettapplikasjoner for å gi raske søkeresultater av høy kvalitet.
Denne artikkelen vil vise deg hvordan du setter opp en Sphinx-søkemotor til å indeksere og søke i en eksempel MariaDB-database på en Vultr CentOS 7-serverforekomst. Det vil gi deg noen foreløpige ideer om hvordan du bruker Sphinx i prosjektet ditt.
Forutsetninger
- Distribuer en fersk CentOS 7-serverforekomst fra Vultr-kontrollpanelet.
- Bruk en ikke-root sudo-bruker til å logge på fra SSH-terminalen din. Se hvordan du oppretter en sudo-bruker i denne artikkelen .
Trinn 1: Oppdater systemet ditt
sudo yum update -y && sudo reboot
Etter at systemet er omstartet, bruker du den samme sudo-brukeren til å logge på igjen.
Sphinx kan brukes til å søke i ulike datakilder, som SQL-databaser, vanlige tekstfiler, HTML-filer, osv. Her, la oss se på hvordan du bruker Sphinx til å utføre søk på en MariaDB-database.
Installer MariaDB med YUM:
sudo yum install mariadb mariadb-server
Start MariaDB-tjenesten:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Av sikkerhetshensyn, utfør den sikre MySQL-installasjonen:
sudo /usr/bin/mysql_secure_installation
Fullfør denne prosedyren i henhold til følgende instruksjoner:
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
Etter at den sikre MySQL-installasjonen er ferdig, må du angi et nytt passord for MySQL-brukerens "root". I denne opplæringen vil jeg referere til det som "passordet ditt".
Trinn 3: Installer den nyeste Sphinx
For å installere den nyeste versjonen av Sphinx, må du laste ned den riktige rpm-pakken fra Sphinx offisielle nettsted:
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
Trinn 4: Opprett en database for testing
Bruk følgende MySQL-kommandoer for å lage en database kalt "test":
mysql -u root -p -e "CREATE DATABASE test"
Når du blir bedt om å oppgi et passord, skriv inn det du anga tidligere og trykk deretter på Enter.
Importer nå testdata fra en Sphinx eksempel sql-fil:
mysql -u root -p test < /usr/share/doc/sphinx-2.2.10/example.sql
Igjen, skriv inn det samme passordet og trykk deretter Enter for å fullføre importen.
Åpne Sphinx-konfigurasjonsfilen /etc/sphinx/sphinx.conf:
sudo vi /etc/sphinx/sphinx.conf
Foreløpig trenger du bare å sette opp MySQL-brukernavnet sql_userog passordet sql_pass, som vil være:
sql_user = root
sql_pass = yourpassword
Lagre og avslutt:
:wq
Trinn 6: Start indekseringsprogrammet og søk etter demoner
Både indexer og searchd er viktige komponenter i Sphinx. Indexer har ansvaret for å samle inn data fra datakilden, og searchd er den delen av søkemotoren som faktisk håndterer søk.
Sørg for å kjøre følgende kommandoer på riktig måte, ellers vil du støte på feil.
sudo indexer --all
sudo searchd
For å oppdatere indeksstatusen regelmessig, opprett en cron-jobb:
sudo crontab -e
Skriv inn følgende oppføring:
0 * * * * /usr/bin/indexer --rotate --config /etc/sphinx/sphinx.conf --all
Lagre og avslutt:
:wq
Denne cron-jobben vil oppdatere indeksstatusen hver time.
Trinn 7: Test Sphinx-søkemotoren din
Du kan bruke et forhåndsdefinert python-skript for å teste oppsettet av Sphinx:
python /usr/share/sphinx/api/test.py this is my test document
Denne kommandoen vil søke "dette er testdokumentet mitt" i eksempelet MySQL-databasen og deretter vise deg søkeresultatet.
Det avslutter denne opplæringen. Sphinx inkluderer også et søke-API, som kan brukes fra dine egne PHP-, Perl-, Python-, Ruby- eller Java-prosjekter. Mer informasjon er tilgjengelig på Sphinx offisielle nettsted.