безкоштовно з міських телефонів України
| Київ | 044 392-73-56 | 
| Харків | 057 728-49-18 | 
| Дніпро | 056 790-86-00 | 
| Одеса | 048 734-56-54 | 
| Львів | 032 229-58-50 | 
| Миколаїв | 051 270-12-63 | 
| Полтава | 053 262-53-74 | 
| Запоріжжя | 061 228-69-91 | 
Sphinx є продуктивною та простою системою з відкритим вихідним кодом, призначеною для повнотекстового пошуку. За допомогою Sphinx можна проводити пошук даних у будь-яких джерелах: в текстових і HTML файлах, поштових скриньках, базах SQL і т.д.
Перед виконанням інструкції необхідно попередньо встановити та налаштувати сервер MySQL.
Також рекомендується створити не root користувача з доступом до sudo (але спочатку потрібно підключитися до сервера SSH).
В інструкції використовується текстовий редактор nano, для якого потрібно виконати команду:
 yum install nanoПеред встановленням Sphinx, встановлюємо залежності:
 sudo yum install -y postgresql-libs unixODBCНатискаємо Enter. Якщо запитує пароль, введіть його.

Переходимо до каталогу tmp:
 cd /tmpЗавантажуємо Sphinx:
 wget http://sphinxsearch.com/files/sphinx-2.2.11-1.rhel7.x86_64.rpmНатискаємо Enter

Встановлюємо Sphinx:
 sudo yum install -y sphinx-2.2.11-1.rhel7.x86_64.rpmНатискаємо Enter

Входимо в оболонку MySQL:
 mysql -u root -pНатискаємо Enter. Якщо запитує пароль, введіть пароль, який створювався під час створення сервера My SQL у посібнику з встановлення LAMP

Створюємо тестову базу даних (в інструкції назва бази даних test):
 CREATE DATABASE test;Натискаємо Enter

Імпортуйте зразки файлу SQL, що постачається разом із пакетом:
 SOURCE /usr/share/doc/sphinx-2.2.11/example.sql;Натискаємо Enter

Закриваємо оболонку MySQL:
 quitНатискаємо Enter

Конфігурації Sphinx зберігаються у файлі sphinx.conf.
Змінюємо назву файлу конфігурації на sphinx.conf2
 sudo mv /etc/sphinx/sphinx.conf /etc/sphinx/sphinx.conf2Натискаємо Enter
Створюємо новий файл sphinx.conf:
 sudo nano /etc/sphinx/sphinx.confНатискаємо Enter
І вставляємо в нього наступні рядки (пароль J2m!G2x2&T6e%1T2y необхідно замінити на власний пароль root для підключення до MySQL):
 source src1 { type = mysql sql_host = localhost sql_user = root sql_pass = J2m!G2x2&T6e%1T2y sql_db = test sql_port = 3306 sql_query =  SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content  FROM documents sql_attr_uint = group_id sql_attr_timestamp = date_added } index test1 { source = src1 path = /var/lib/sphinx/test1 docinfo = extern } searchd { listen = 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/ }
Зберігаємо зміну у файлі, натиснувши клавіші Ctrl+x , потім клавішу y і потім клавішу Enter.
Додаємо дані до індексу, використовується раніше створений конфігураційний файл sphinx.conf
 sudo indexer --allНатискаємо Enter

Для того щоб постійно підтримувати індекс в актуальному стані, створюємо cron завдання:
 crontab -eНатискаємо Enter
Додаємо наступний код:
 @hourly /usr/bin/indexer --rotate --config /etc/sphinx/sphinx.conf --allЦе cron завдання буде запускатися щогодини і додавати дані до індексу, звертаючись до створеного раніше конфігураційного файлу.
Зберігаємо інформацію натиснувши клавіші Ctrl + C, натиснути одночасно клавіші Shift і « :» потім вказавши команду:
 :wqдо двокрапки дописати літери wq
Натискаємо Enter

Запускаємо демон Sphinx:
 sudo systemctl start searchdНатискаємо Enter.Якщо запитує пароль ввести його
Переконуємося, що демон Sphinx запущено:
 sqlНатискаємо Enter

Для пошуку даних за допомогою Sphinx, підключаємось до SphinxQL за допомогою інтерфейсу MySQL:
 mysql -h0 -P9306Натискаємо Enter

Пробуємо знайти пропозицію test document:
 SELECT * FROM test1 WHERE MATCH('test document'); SHOW META;Натискаємо Enter
Бачимо два збіги з індексу test1:

Виконуємо пошук за ключовими словами:
 CALL KEYWORDS ('test one three', 'test1', 1);Натискаємо Enter
В індексі test1 було знайдено:
5 збігів у 3 документах для ключа test.
2 збіги в 1 документі для одного ключа.
0 збігів у 0 документах для ключа three.

Виходимо зі SphinxQL:
 quitНатискаємо Enter

Входимо в оболонку MySQL:
 mysql -u root -pНатискаємо Enter. Якщо запитує пароль, ввести пароль під час створення mysql з посібника зі створення LAMP.

Видаляємо тестову базу:
 DROP DATABASE test;Натискаємо Enter

Виходимо з оболонки MySQL:
 quitНатискаємо Enter

Див. також:
Встановлення та налаштування Sphinx
