Ми використовуємо cookie-файли
Для оптимізації роботи нашого сайту ми використовуємо cookie-файли. Продовжуючи використовувати сайт, Ви погоджуєтеся з використанням cookie-файлів.
Новий дизайн
Панель керування
  • Русский
  • Українська
  • English
  • UAH
  • USD
  • RUB
  • EUR
  • 0-800-307-307 Гаряча лінія
  • +38 (044) 392-74-33 Київ
  • +38 (057) 728-39-00 Харків
  • +38 (056) 794-38-31 Дніпро
  • +38 (032) 229-58-93 Львів
  • +38 (048) 738-57-70 Одеса
  • +38(093) 170-15-42  Life
  • +38 (067) 400-88-44 Київстар
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7 (499) 348-28-61 Москва

2.2.6. Sphinx

Sphinx (SQL Phrase Index) - система повнотекстового пошуку з підтримкою морфології різних мов. Дозволяє швидко і гнучко шукати інформацію в базі даних за довільним текстом.

Важливі моменти:

  • На тарифах бізнес-хостингу Sphinx доступний за умовчанням. Замовляти його окремо не потрібно.
  • Замовляти Sphinx може тільки власник хостинг-аккаунта.
  • При першому замовленні Sphinx доступний безкоштовний 7-денний тестовий період.

Для замовлення Sphinx виконайте наступне:

  1. Відкрийте розділ «Хостинг ».
  2. У блоці «Додаткові сервіси»Натисніть«Sphinx»:
  3. У блоці «Основні дані»Натисніть«Замовити»:
  4. Натисніть «Замовити»:
  5. Якщо послуга замовляється вперше, пропустіть цей крок, щоб скористатися безкоштовним 7-денним тестовим періодом. В іншому випадку оплатіть автоматично сформований рахунок будь-яким з доступних способів і дочекайтеся зарахування оплати.
  6. Зачекайте приблизно 30 хвилин, поки активується послуга.

Для використання Sphinx на сайті потрібно налаштувати як сам Sphinx, так і сайт.

Після замовлення Sphinx на сторінці цієї допуслуги з'являється дві вкладки:

Вкладка містить правила, що описують, з якими даними і як повинен працювати Sphinx. За замовчуванням в конфігурацію підставляється шаблон з прикладом:

Конфігурація складається з двох секцій:

  • Джерело даних (source) - конфігурація джерела даних і його назва (в прикладі db_source):
    • Тип даних (type) - тип джерела даних (в прикладі mysql).
    • Дані для підключення до бази даних (sql_host, sql_port, sql_user, sql_pass, sql_db) — дані для підключення до бази даних MySQL, Звідки буде братися інформація для індексування.
    • Попередній запит (sql_query_pre) - запит, який буде перед основним запитом на отримання даних з бази (в прикладі SET NAMES utf8 - установка кодування UTF-8).
    • Основний запит (sql_query) - запит на отримання з бази даних необхідних даних для індексування (в прикладі select id, title, content from table - стовпці id, title і content з таблиці table).
    • Інші директиви - дозволяють визначати порядок угруповання, фільтрації, сортування (детальну інформацію можна знайти в офіційної документації).
  • Параметри індексації (index) - конфігурація індексу і його назва (в прикладі test_index):
    • Джерело даних для індексування (source) - назва джерела даних, звідки буде братися інформація для індексування (в прикладі db_source - див. вище).
    • Шлях, по якому будуть зберігатися дані індексу (path) - абсолютний шлях до файлу з індексами (в прикладі /home/example/.system/sphinx/test_index).
    • Налаштування морфології (morphology) - назва бібліотеки (в прикладі stem_ru), Яка буде використовуватися для пошуку слова з різними словоформами - наприклад, за запитом «собака»Будуть повертатися результати з варіантами«собаки», «собакою», «собаками" і т.д.
    • Збереження в індексі слів в початковому вигляді (index_exact_words) - при використанні спільно з директивою expand_keywords дозволяє повертати за запитом більш релевантні результати (в прикладі 1 - включено).
    • Мінімальна довжина слова для індексації (min_word_len) - за замовчуванням використовується 1, Але слова такої довжини зазвичай не несуть смислового навантаження (в прикладі 3).
    • Інші директиви - дозволяють визначати порядок угруповання, фільтрації, сортування (детальну інформацію можна знайти в офіційної документації).

З докладним описом роботи Sphinx і списком всіх його параметрів можна ознайомитися в офіційної документації (Англ.).

Нижче ви можете:

  • Вибрати протокол доступу до пошукового демона Sphinx (searchd):
    • «MySQL»- доступ через SphinxQL, різновид SQL, схожу на MySQL.
    • «Sphinx»- доступ через SphinxAPI, власний API Sphinx.
  • Включити або відключити ведення логу запитів до Sphinx - query_log.

Після натискання «Зберегти конфігурацію»:

  • Sphinx буде перезапущений.
  • Якщо в конфігурації будуть виявлені секції, що описують дискові пошукові індекси:
    • Для них автоматично будуть створені окремі cron-завдання на вкладці «Індекси»З періодичністю поновлення раз в 15 хвилин.
    • Відразу після збереження конфігураційного файлу буде запущено створення індексів (може зайняти деякий час).
Вкладка містить список усіх індексів:

Колонки:

  • «Індекс»- назва індексу. вказується в конфігурації в секції з параметрами індексації.
  • «Частота оновлення»- поточний розклад запуску індексування в стандартному форматі cron. За замовчуванням індексування запускається раз в 15 хвилин.
  • Кнопки:
    • Призупинення / запуск - кнопка призупинення / запуску індексування за розкладом.
    • Редагування - кнопка зміни розкладу запуску індексування.
    • Видалення - кнопка видалення індексу. Увага! Після натискання з конфігурації буде видалена секція з параметрами індексації для даного індексу.

Увага!

Перед використанням плагінів для роботи з Sphinx уважно ознайомтеся з їхніми вимогами, а також сумісністю. Більшість полігонів давно не підтримуються і працюють з версією Sphinx 2.2 або нижче, на хостингу використовується версія 3.

Налаштування сайту для роботи з Sphinx знаходиться в компетенції розробника сайту або залучених сторонніх фахівців.

Завдання зводиться до наступних етапів:

  1. Вивчити вміст бази даних сайту і визначити, за якими саме даними потрібно швидкий пошук.
  2. Конфігурувати Sphinx з потрібними параметрами: вказати, з якої бази даних потрібно брати дані, які таблиці і стовпчики потрібно індексувати, задати правила індексації.
  3. Додати на сайт код, який замість стандартного пошуку в базі даних буде шукати дані в створеному індексі Sphinx. Код може бути написаний розробником або самостійно, Або за основу можуть бути взяті готові плагіни або модулі, згадані на офіційному сайті.

Підключення сайту до Sphinx виконується через сокет. Шлях до сокету можна знайти на сторінці управління Sphinx. Порт слід вказувати в залежності від конфігурації підключається плагіна, в цілому портом можна знехтувати, вказавши його як 0 або 9312.

Для перегляду логу Sphinx виконайте наступне:

  1. Скопіюйте шлях до балці з розділу управління Sphinx.
  2. Виконайте одну з команд:
    • Перегляд повного логу:
      cat ~/.system/sphinx/searchd.log
    • Моніторинг балки в реальному часі (для завершення використовуйте поєднання Ctrl+C):
      tail -f ~/.system/sphinx/searchd.log