Sphinx (SQL Phrase Index) — система полнотекстового поиска с поддержкой морфологии различных языков. Позволяет быстро и гибко искать информацию в базе данных по произвольному тексту.
Для заказа 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 внимательно ознакомьтесь с их требованиями, а также совместимостью. Большинство плагинов давно не поддерживаются и работают с версией Sphinx 2.2 или ниже, на хостинге используется версия 3.
Настройка сайта для работы со Sphinx находится в компетенции разработчика сайта или привлечённых сторонних специалистов.
Задача сводится к следующим этапам:
Подключение сайта к Sphinx выполняется через сокет. Путь к сокету можно найти на странице управления Sphinx. Порт следует указывать в зависимости от конфигурации подключаемого плагина, в целом портом можно пренебречь, указав его как 0 или 9312.
Для просмотра лога Sphinx выполните следующее:
cat ~/.system/sphinx/searchd.log
tail -f ~/.system/sphinx/searchd.log