Plasarea serverelor în centre de date fiabile din Europa. Deschideți serverul VPS / VDS bazat pe cloud pe SSD-uri rapide în 1 minut!
Cel mai bun Gazduire:
- protejează datele de accesul nedorit într-un centru de date european protejat
- va accepta plata cel puțin în taxe.
- vă va permite să vă distribuiți distribuția
- protecția împotriva atacurilor DDos
- copie de rezervă gratuită
- Uptime 99.9999%
- Centrul de date - TIER III
- furnizor - TIER I
Sprijinim în limba rusă 24/7/365 Lucrăm cu persoane juridice și persoane fizice. Acum aveți nevoie de 24 nuclee și 72 GB de memorie RAM. Vă rog!
Tarifele noastre avantajoase vor dovedi că nu ați știut încă ieftinul de găzduire!
Minute: selectați configurația, plătiți și CMS de pe VPS este gata.
Banii înapoi - 30 de zile!
Carduri bancare, e-valută, prin intermediul terminalelor Qiwi, Webmoney, PayPal, Novoplat etc.
Puneți o întrebare la sprijinul 24/7/365
Găsiți răspunsuri în baza noastră de date și cunoașteți recomandările
Sphinx este un sistem productiv și simplu pentru căutare fulltext în sursă deschisă. Sfinxul poate căuta date în orice sursă: în baze de date SQL, fișiere text și HTML, cutii poștale etc.
Funcțiile de bază ale Sfinxului:
- Indexarea și căutarea de înaltă performanță;
- Instrumente avansate de indexare și interogare;
- Procesare avansată avansată;
- Scalabilitatea la miliarde de documente, terabytes de date și mii de cereri pe secundă;
- Integrare simplă cu sursele de date SQL și XML și interfețele de căutare SphinxQL, SphinxAPI sau SphinxSE;
- Căutări distribuite.
Acest ghid vă va ajuta să instalați Sphinx și să configurați motorul de căutare pentru a interacționa cu MySQL.
cerinţe
- Configurați serverul CentOS 7.
- Un utilizator non-root cu acces la sudo (puteți citi despre crearea acestui utilizator în ghidul de instalare inițială).
- Un server MySQL preinstalat (instrucțiunile de instalare pot fi găsite în secțiunea corespunzătoare a acestui manual).
1: Instalarea sfinxului
La momentul scrierii, ultima versiune stabilă a Sfinxului este 2.2.11.
Notă. Urmăriți versiunile aici.
Înainte de a instala Sphinx pe server, trebuie să instalați dependențele programului:
sudo yum instalați -a postgresql-libs unixODBC
Accesați directorul tmp pentru a încărca fișierele Sphinx.
Descărcați cea mai recentă versiune de Sphinx:
sudo yum instalați -a sphinx-2.2.11-1.rhel7.x86_64.rpm
Motorul de căutare Sphinx a fost instalat cu succes pe server. După instalare, Sphinx are nevoie de configurație suplimentară.
2: Crearea unei baze de date de testare
Creați o bază de date utilizând fișierul SQL exemplu care este livrat împreună cu pachetul. Pentru a face acest lucru, trebuie să importați acest fișier SQL în baza de date.
Conectați-vă la shell-ul MySQL:
Introduceți parola rădăcină MySQL, după care se va schimba linia de comandă:
Creați o bază de date (în acest manual se numește test):
CREATE DATABASE test;
Apoi închideți shell-ul MySQL:
Acum, testul bazei de date este completat cu date din fișierul importat.
3: Configurarea sfinxului
Sifinx-urile trebuie să fie stocate în fișierul sphinx.conf din directorul / etc / sphinxsearch. Acestea constau în trei blocuri principale: index, căutare și sursă.
Fișierul implicit oferă o configurație minimă. Dar este mai bine să creați un nou fișier de configurare.
Deplasați fișierul de configurare implicit, sphinx.conf:
sudo mv /etc/sphinx/sphinx.conf /etc/sphinx/sphinx.conf2
sudo vi /etc/sphinx/sphinx.conf
Notă. După descrierea fiecărui bloc de configurare, puteți găsi codul complet pentru sphinx.conf.
Blocul sursă conține tipul sursei de date, numele de utilizator și parola MySQL. Prima coloană sql_query trebuie să conțină un ID unic. Interogarea SQL va fi executată pentru fiecare index, apoi transferul datelor către fișierul index Sphinx. Blocul sursă este alcătuit din următoarele câmpuri:
Blocul sursă arată astfel:
sursa src1
tip = mysql
Setările #SQL (pentru tipurile "mysql" și "pgsql")
sql_host = localhost
sql_user = rădăcină
sql_pass = parola
sql_db = test
sql_port = 3306 # opțional, implicit este 3306
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP (data_added) AS date_added, title, content \
Din documente
sql_attr_uint = numele grupului
sql_attr_timestamp = data_added
>
Blocul index conține date despre sursă și calea către locația datelor.
- sursă: numele blocului sursă. În acest caz este src1.
- cale: calea către fișierul index.
Acest bloc arată astfel:
index test1
sursa = src1
calea = / var / lib / sphinx / test1
docinfo = extern
>
Blocul căutat conține porturi și variabile pentru pornirea daemonului Sphinx.
- ascultați: portul pe care să rulați Sphinx și protocolul folosit (în manual - 9306: mysql41). Protocoalele populare sunt Sphinx - sphinx (SphinxAPI) și: mysql41 (SphinxQL).
- query_log: calea către jurnalul de interogări.
- pid_file: calea către fișierul Sphinx PID.
- seamless_rotate: împiedică căutarea să se oprească atunci când cachează o cantitate mare de date.
- preopen_indexes: Specifică dacă doriți să deschideți anterior toate indexurile.
- unlink_old: Specifică dacă să se deconecteze copii vechi ale fișierelor index.
searchd
asculta = port 9312: sphinx #SphinxAPI
asculta = 9306: mysql41 #SphinxQL port
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinx/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
binlog_path = / var / lib / sphinx /
>
Următoarele sunt configurațiile fișierului sphinx.conf. Puteți să le copiați și să le inserați în fișierul dvs. Singura variabilă care trebuie editată este sql_pass în blocul sursă; specificați parola mysql în el.
sursa src1
tip = mysql
sql_host = localhost
sql_user = rădăcină
sql_pass = fișierul dvs._root_mysql_password
sql_db = test
sql_port = 3306
sql_query = \
SELECT id, group_id, UNIX_TIMESTAMP (data_added) AS date_added, title, content \
Din documente
sql_attr_uint = numele grupului
sql_attr_timestamp = data_added
>
index test1
sursa = src1
calea = / var / lib / sphinx / test1
docinfo = extern
>
searchd
asculta = 9306: mysql41
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinx/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
binlog_path = / var / lib / sphinx /
>
Mai multe configurații pot fi găsite în fișierul /etc/sphinxsearch/sphinx.conf.sample, care conține o descriere detaliată a tuturor variabilelor.
4: Gestionarea indexului
Această secțiune arată modul de adăugare a datelor în indexul Sphinx și actualizarea indexului cu cron.
Pentru a adăuga date la index, se folosește fișierul de configurare nou creat.
sudo indexer - toate
Echipa ar trebui să se întoarcă:
În mediul de producție, indicele trebuie să fie mereu actualizat. Pentru a face acest lucru, creați un cronjob. Deschide crontab:
Acest cronjob va fi rulat la fiecare oră și va adăuga date către index, referindu-se la fișierul de configurare creat mai devreme. Copiați și inserați următoarea regulă la sfârșitul fișierului:
@hourly / usr / bin / indexer --rotate --config /etc/sphinx/sphinx.conf - tot
Acum, motorul de căutare Sphinx este gata să fie lansat.
5: Sfinxul care rulează
Pentru a rula daemonul Sphinx, folosiți systemctl.
sudo systemctl începe searchd
Asigurați-vă că daemonul Sphinx rulează:
sudo systemctl status searchd
Echipa ar trebui să se întoarcă:
6: Testarea căutării
Acum încercați să găsiți datele cu Sfinx. Conectați-vă la SphinxQL utilizând interfața MySQL (linia de comandă se va schimba la mysql>).
Încercați să găsiți o ofertă:
SELECT * FROM test1 WHERE MATCH ("document de test"); SHOW META;
După cum puteți vedea, sistemul Sphinx a detectat două potriviri din indexul test1. SHOW META; arată meciurile fiecărui cuvânt cheie din propoziție.
Încercați să căutați cuvinte cheie:
CUVINTE CHEIE CU TELEFONUL ('test one three', 'test1', 1);
În testul index1, sistemul Sfinx a găsit:
- 5 meciuri în 3 documente pentru cheia de test.
- 2 meciuri într-un singur document pentru unul.
- 0 meciuri în 0 documente pentru cheia trei.
Acum puteți șterge baza de date pentru testul Sphinx:
Testul DROP DATABASE;
Închideți shell-ul MySQL:
concluzie
Acest ghid vă ajută să instalați Sphinx și să efectuați o căutare simplă a datelor folosind SphinxQL și MySQL.
Această legătură poate fi utilizată pentru implementarea API-ului Sphinx pentru PHP, Perl, Python, Ruby și Java.
Utilizatorii Nodejs pot găsi pachetul SphinxAPI prin acest link.
Sfinxul vă permite să adăugați o căutare personalizată pe site. Mai multe informații despre utilizarea Sfinxului pot fi găsite pe site-ul proiectului.