Sphinx - це вільно поширювана високошвидкісна система повнотекстового пошуку. У числі її безсумнівних переваг слід назвати високу швидкість індексації та пошуку, можливість інтеграції з MySQL і PostgreSQL, наявність клієнтів для багатьох мов програмування (PHP, Perl, Python, Ruby, Java).
Встановивши і налаштувавши Sphinx, ви зможете додати можливість повнотекстового пошуку на свій сайт або блог.
Вимоги для установки
- Сервер з CentOS 7;
- Користувач з привілеями root для підключення по SSH;
- Встановлений на сервері MySQL.
Крок 1. Встановлення Sphinx
Ми будемо описувати установку останньої на сьогоднішній день версії Sphinx - 2.2.11.
Почнемо з установки необхідних залежностей:
Перейдемо в / tmp. щоб не засмічувати систему непотрібними файлами:
Завантажимо останню версію Sphinx c офіційного сайту:
Встановимо завантажений пакет:
Вітаю! Sphinx успішно встановлений на вашому сервері, перейдемо до налаштування.
Крок 2. Створення тестової бази даних
На цьому кроці ми створимо тестову БД і імпортуємо в неї демо-файл з комплекту Sphinx для перевірки його працездатності.
Насамперед підключаємося до командної оболонки MySQL:
Введемо пароль root-користувача MySQL, а потім створимо нову базу даних:
Імпортуємо демонстраційний SQL-файл:
Вийдемо з командної оболонки MySQL:
Крок 3. Налаштування Sphinx
На цьому кроці ми створимо конфігураційний файл для Sphinx.
Про всяк випадок збережемо оригінальний файл:
Створимо новий файл:
Додамо в нього таке вміст:
Крок 4. Робота з індексом
На цьому кроці ми додамо дані в індекс Sphinx і налаштуємо його оновлення по cron.
Спочатку додамо дані з БД в індекс:
Потім відкриємо crontab:
Додамо нове завдання, яке буде раз на годину оновлювати індекс:
Ось і все: Sphinx встановлений і налаштований.
Крок 5. Запуск Sphinx
Готово: Sphinx запущений. Прийшов час перевірити його в справі.
Підключимося до інтерфейсу SphinxQL за допомогою MySQL:
Спробуємо пошукати пропозиції:
Як бачимо Sphinx, знайшов два збіги з нашого індексу. Також можна спробувати пошук за ключовими словами і т.п. Після тестування ми можемо видалити тестову базу даних:
і закрити MySQL:
Всього за 6 кроків ми встановили і протестували роботу Sphinx в зв'язці з MySQL. За допомогою Sphinx ви зможете додати пошук на свій сайт.
Природно, що опис всіх можливостей Sphinx в рамках однієї статті - завдання практично нездійсненне. Тому на закінчення наведемо кілька корисних посилань: