Введіть ім'я домену:
.ua .com.ua .in.ua .org.ua
.ru .com .net .org
Показати всі домени

Встановлення та налаштування Sphinx

Відповіді на запитання від компанії "Український хостинг".

Встановлення та налаштування Sphinx в Ubuntu

Sphinx є продуктивною та простою системою з відкритим вихідним кодом, призначеною для повнотекстового пошуку. За допомогою Sphinx можна проводити пошук даних у будь-яких джерелах: в текстових і HTML файлах, поштових скриньках, базах SQL і т.д.

Перед виконанням інструкції необхідно попередньо встановити та налаштувати сервер MySQL.

Також рекомендується створити не root користувача з доступом до sudo (але спочатку потрібно підключитися до сервера SSH).

В інструкції використовується текстовий редактор nano, для якого потрібно виконати команду:

 yum install nano

Процедура встановлення Sphinx в Ubuntu складається з наступних кроків:

  1. Перед встановленням Sphinx, встановлюємо залежності:

     sudo yum install -y postgresql-libs unixODBC

    Натискаємо Enter. Якщо запитує пароль, введіть його.

  2. Переходимо до каталогу tmp:

     cd /tmp
  3. Завантажуємо Sphinx:

     wget http://sphinxsearch.com/files/sphinx-2.2.11-1.rhel7.x86_64.rpm

    Натискаємо Enter

  4. Встановлюємо Sphinx:

     sudo yum install -y sphinx-2.2.11-1.rhel7.x86_64.rpm

    Натискаємо Enter

  5. Входимо в оболонку MySQL:

     mysql -u root -p

    Натискаємо Enter. Якщо запитує пароль, введіть пароль, який створювався під час створення сервера My SQL у посібнику з встановлення LAMP

  6. Створюємо тестову базу даних (в інструкції назва бази даних test):

     CREATE DATABASE test;

    Натискаємо Enter

  7. Імпортуйте зразки файлу SQL, що постачається разом із пакетом:

     SOURCE /usr/share/doc/sphinx-2.2.11/example.sql;

    Натискаємо Enter

  8. Закриваємо оболонку MySQL:

     quit

    Натискаємо Enter

  9. Конфігурації 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.

  10. Додаємо дані до індексу, використовується раніше створений конфігураційний файл sphinx.conf

     sudo indexer --all

    Натискаємо Enter

  11. Для того щоб постійно підтримувати індекс в актуальному стані, створюємо cron завдання:

     crontab -e

    Натискаємо Enter

    Додаємо наступний код:

     @hourly /usr/bin/indexer --rotate --config /etc/sphinx/sphinx.conf --all

    Це cron завдання буде запускатися щогодини і додавати дані до індексу, звертаючись до створеного раніше конфігураційного файлу.

    Зберігаємо інформацію натиснувши клавіші Ctrl + C, натиснути одночасно клавіші Shift і « :» потім вказавши команду:

     :wq

    до двокрапки дописати літери wq

    Натискаємо Enter

  12. Запускаємо демон Sphinx:

     sudo systemctl start searchd

    Натискаємо Enter.Якщо запитує пароль ввести його

    Переконуємося, що демон Sphinx запущено:

     sql

    Натискаємо Enter

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

     mysql -h0 -P9306

    Натискаємо Enter

  14. Пробуємо знайти пропозицію test document:

     SELECT * FROM test1 WHERE MATCH('test document'); SHOW META;

    Натискаємо Enter

    Бачимо два збіги з індексу test1:

  15. Виконуємо пошук за ключовими словами:

     CALL KEYWORDS ('test one three', 'test1', 1);

    Натискаємо Enter

    В індексі test1 було знайдено:

    5 збігів у 3 документах для ключа test.
    2 збіги в 1 документі для одного ключа.
    0 збігів у 0 документах для ключа three.
  16. Виходимо зі SphinxQL:

     quit

    Натискаємо Enter

  17. Входимо в оболонку MySQL:

     mysql -u root -p

    Натискаємо Enter. Якщо запитує пароль, ввести пароль під час створення mysql з посібника зі створення LAMP.

  18. Видаляємо тестову базу:

     DROP DATABASE test;

    Натискаємо Enter

  19. Виходимо з оболонки MySQL:

     quit

    Натискаємо Enter

Мітки: Sphinx, vps, linux, сервер

Див. також:

Будь ласка, виберіть мову сайту за промовчанням: