Ми використовуємо 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-денний тестовий період.
  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 хвилин.
  • « Розмір »- розмір індексу. Дані кешуються на 10 хвилин.
  • Кнопки:
    • Призупинення / запуск - кнопка призупинення / запуску індексування за розкладом.
    • Редагування - кнопка зміни розкладу запуску індексування.
    • Видалення - кнопка видалення індексу. Увага! Після натискання з конфігурації буде видалена секція з параметрами індексації для даного індексу.

Увага!

Перед використанням плагінів для роботи з 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
Зміст