Προαπαιτούμενα
Βήμα 1: Ενημερώστε το σύστημά σας
Βήμα 2: Εγκαταστήστε και διαμορφώστε το MariaDB
Βήμα 3: Εγκαταστήστε το πιο πρόσφατο Sphinx
Βήμα 4: Δημιουργήστε μια βάση δεδομένων για δοκιμή
Βήμα 5: Διαμόρφωση Sphinx
Βήμα 6: Εκκινήστε το ευρετήριο και τους δαίμονες που αναζητήσατε
Βήμα 7: Δοκιμάστε τη μηχανή αναζήτησης Sphinx
Το Sphinx είναι μια δωρεάν και ανοιχτού κώδικα μηχανή αναζήτησης πλήρους κειμένου που μπορεί να ενσωματωθεί σε διάφορες διαδικτυακές εφαρμογές για να παρέχει γρήγορα και υψηλής ποιότητας αποτελέσματα αναζήτησης.
Αυτό το άρθρο θα σας δείξει πώς να ρυθμίσετε μια μηχανή αναζήτησης Sphinx για να ευρετηριάσει και να αναζητήσει ένα παράδειγμα βάσης δεδομένων MariaDB σε μια παρουσία διακομιστή Vultr CentOS 7. Θα σας δώσει μερικές προκαταρκτικές ιδέες για το πώς να χρησιμοποιήσετε το Sphinx στο έργο σας.
Προαπαιτούμενα
- Αναπτύξτε μια νέα παρουσία διακομιστή CentOS 7 από τον πίνακα ελέγχου Vultr.
- Χρησιμοποιήστε έναν χρήστη sudo χωρίς root για να συνδεθείτε από το τερματικό σας SSH. Δείτε πώς μπορείτε να δημιουργήσετε έναν χρήστη sudo σε αυτό το άρθρο .
Βήμα 1: Ενημερώστε το σύστημά σας
sudo yum update -y && sudo reboot
Αφού ολοκληρωθεί η επανεκκίνηση του συστήματος, χρησιμοποιήστε τον ίδιο χρήστη sudo για να συνδεθείτε ξανά.
Το Sphinx μπορεί να χρησιμοποιηθεί για την αναζήτηση διαφόρων πηγών δεδομένων, όπως βάσεις δεδομένων SQL, αρχεία απλού κειμένου, αρχεία HTML κ.λπ. Εδώ, ας ρίξουμε μια ματιά στον τρόπο χρήσης του Sphinx για την εκτέλεση αναζητήσεων σε μια βάση δεδομένων MariaDB.
Εγκαταστήστε το MariaDB χρησιμοποιώντας το YUM:
sudo yum install mariadb mariadb-server
Ξεκινήστε την υπηρεσία MariaDB:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Για λόγους ασφαλείας, εκτελέστε την ασφαλή εγκατάσταση MySQL:
sudo /usr/bin/mysql_secure_installation
Ολοκληρώστε αυτή τη διαδικασία σύμφωνα με τις ακόλουθες οδηγίες:
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
Αφού ολοκληρωθεί η ασφαλής εγκατάσταση της MySQL, θα πρέπει να ορίσετε έναν νέο κωδικό πρόσβασης για το "root" του χρήστη MySQL. Σε αυτό το σεμινάριο, θα το αναφέρω ως "ο κωδικός σας".
Βήμα 3: Εγκαταστήστε το πιο πρόσφατο Sphinx
Για να εγκαταστήσετε την πιο πρόσφατη έκδοση του Sphinx, πρέπει να κάνετε λήψη του κατάλληλου πακέτου rpm από τον επίσημο ιστότοπο της 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
Βήμα 4: Δημιουργήστε μια βάση δεδομένων για δοκιμή
Χρησιμοποιήστε τις ακόλουθες εντολές MySQL για να δημιουργήσετε μια βάση δεδομένων με το όνομα "test":
mysql -u root -p -e "CREATE DATABASE test"
Όταν σας ζητηθεί να δώσετε έναν κωδικό πρόσβασης, εισαγάγετε αυτόν που ορίσατε νωρίτερα και, στη συνέχεια, πατήστε Enter.
Τώρα, εισαγάγετε δεδομένα δοκιμής από ένα παράδειγμα αρχείου sql της Sphinx:
mysql -u root -p test < /usr/share/doc/sphinx-2.2.10/example.sql
Και πάλι, εισαγάγετε τον ίδιο κωδικό πρόσβασης και, στη συνέχεια, πατήστε Enter για να ολοκληρώσετε την εισαγωγή.
Ανοίξτε το αρχείο διαμόρφωσης Sphinx /etc/sphinx/sphinx.conf:
sudo vi /etc/sphinx/sphinx.conf
Προς το παρόν, χρειάζεται μόνο να ρυθμίσετε το όνομα χρήστη MySQL sql_userκαι τον κωδικό πρόσβασης sql_pass, που θα είναι:
sql_user = root
sql_pass = yourpassword
Αποθήκευση και έξοδος:
:wq
Βήμα 6: Εκκινήστε το ευρετήριο και τους δαίμονες που αναζητήσατε
Τόσο το indexer όσο και το searched είναι σημαντικά συστατικά του Sphinx. Ο Indexer είναι υπεύθυνος για τη συλλογή δεδομένων από την πηγή δεδομένων και η αναζήτηση είναι το τμήμα της μηχανής αναζήτησης που χειρίζεται πραγματικά τις αναζητήσεις.
Βεβαιωθείτε ότι έχετε εκτελέσει τις ακόλουθες εντολές με τάξη, διαφορετικά θα αντιμετωπίσετε σφάλματα.
sudo indexer --all
sudo searchd
Για να ενημερώνετε τακτικά την κατάσταση του ευρετηρίου, δημιουργήστε μια εργασία cron:
sudo crontab -e
Εισαγάγετε την ακόλουθη καταχώρηση:
0 * * * * /usr/bin/indexer --rotate --config /etc/sphinx/sphinx.conf --all
Αποθήκευση και έξοδος:
:wq
Αυτή η εργασία cron θα ενημερώνει την κατάσταση του ευρετηρίου ανά ώρα.
Βήμα 7: Δοκιμάστε τη μηχανή αναζήτησης Sphinx
Μπορείτε να χρησιμοποιήσετε ένα προκαθορισμένο σενάριο python για να δοκιμάσετε τη ρύθμιση του Sphinx:
python /usr/share/sphinx/api/test.py this is my test document
Αυτή η εντολή θα πραγματοποιήσει αναζήτηση "This is my test document" στο παράδειγμα βάσης δεδομένων MySQL και, στη συνέχεια, θα εμφανίσει το αποτέλεσμα αναζήτησης.
Αυτό ολοκληρώνει αυτό το σεμινάριο. Το Sphinx περιλαμβάνει επίσης ένα API αναζήτησης, το οποίο μπορεί να χρησιμοποιηθεί από τα δικά σας έργα PHP, Perl, Python, Ruby ή Java. Περισσότερες πληροφορίες είναι διαθέσιμες στον επίσημο ιστότοπο της Σφίγγας.