Запуск Sphinx или как улучшить поиск на Битрикс

Sphinx – система полнотекстового поиска, которая была разработана нашим соотечественником Андреем Аксеновым. Характерной чертой этого поискового движка является его быстрая индексация и поиск.

Благодаря Sphinx поиск по сайту на Битрикс становится качественней и значительно быстрее по сравнению с обычным поиском. К тому же, уменьшается нагрузка на сервер.

В Битриксе включить поиск с помощью Sphinx совсем не сложно, на самом деле он уже интегрирован с поисковым модулем. Остается только установить Sphinx на ваш сервер и внести настройки в поисковый модуль Битрикс.

В данной статье я опишу как установить Sphinx и подключить его к сайту.

Как установить Sphinx

Если у вас сайт уже работает на VM Bitrix, то запуск Sphinx становится простым, как пять копеек. Речь пойдет исключительно об установке на VM Bitrix.

Для установки Sphinx необходимо зайти в меню виртуальной машины на вашем сервере и выбрать пункт: 7. Configure Sphinx service for the pool

Установка Sphinx
Установка Sphinx

Затем, выбрать пункт 1. Create sphinx instance on the server

Установка Sphinx
Установка Sphinx

И ввести название из колонки Hostname

Внесение hostname
Внесение hostname

Далее, по пункту Enter the name of the database that will use sphinx пишем название базы данных вашего сайта. На заметку: она будет отображаться выше, в листинге сайтов в колонке dbname.

А на вопрос Re-index the site after creating a sphinx instance? вы можете попросить Битрикс сделать переиндексацию поиска, после создания. Если сайт боевой и на сайте много товаров, то лучше сделать переиндексацию отдельно в часы минимального посещения пользователями и ответить N.

Настройка Sphinx
Настройка Sphinx

После этого задача начнет выполняться какое-то время, в зависимости от объема данных и мощности сервера. Вы можете посмотреть логи задачи в меню VM Bitrix: 10. Background pool tasks > 1. View running tasks .

После успешной установки, если необходимо поиск сделать лучше, идем настраивать конфигурацию Sphinx.

Настройка конфигурации Sphinx

Для хорошего и качественного поиска рекомендуется внести настройки в конфигурацию Sphinx. Но прежде всего, надо понимать какие директивы вы будете использовать и как они работают. На сайте highload.today о некоторых из них уже рассказано.

После установки для сайта будет создана конфигурация по пути на сервере: /etc/sphinx/bx/search_index/. Файл состоит из названия вашего сайта и расширения conf.

Переход в папку с конфигурациями Sphinx
Переход в папку с конфигурациями Sphinx

Я рекомендую добавить в этот конфигурационный файл две строки, улучшающие поиск по части слова без использования wildcard-символа «*»:

expand_keywords = 1

index_exact_words = 1

Листинг конфигурации
Листинг конфигурации

После редактирования конфигурации обязательно перезагружаем службу командой service sphinx restart (для centos)

Если вам в дальнейшем необходимо перенастроить Sphinx по своим задачам, сделать его злее или наоборот упростить, скорее всего, вы будете использовать данный конфигурационный файл.

Настройка Sphinx в Битрикс

Внимание! После применения настроек весь текущий поисковый индекс будет сброшен. Поэтому лучше перестраховаться и выполнить настройку и переключение в часы минимального посещения пользователями. В противном случае поиск просто не будет работать, пока не будет сделана переиндексация с новым выбранным поисковым движком

Для перехода в настройки поиска в панели администрирования идем по пути Настройки / Настройки модуля / Поиск / Вкладка Морфология

Переход в настройки модуля поиска
Переход в настройки модуля поиска

После успешной установки Sphinx возможен вариант, что все настройки уже будут введены. В противном случае добавляем их вручную.

Настройка модуля поиска
Настройка модуля поиска
  • Полнотекстовый поиск выбираем Sphinx
  • Строка подключения указываем сервер и порт подключения, по стандарту localhost:9306 или 127.0.0.1:9306.
  • И идентификатор индекса – его мы можем узнать из конфигурации Sphinx

Нажимаем сохранить. Затем запускаем полную переиндексацию поиска, если не было выбрано на этапе установки Re-index the site after creating a sphinx instance?

Переиндексация расположена: Настройки / Поиск / Переиндексация

Для корректности убираем галочку Переиндексировать только измененные и жмем Переиндексировать

Переиндексация поиска
Переиндексация поиска

После переиндексации на сайте заработает поиск уже с помощью Sphinx. Как видите, никаких сложностей с запуском.

Приятного использования 🙂

Итоги

Sphinx – шустрый и гибкий поиск, который по необходимости можно настроить при помощи конфигурации. Он легко включается в Битриксе за счет встроенной интеграции в поисковом модуле.

Если искать плюсы и минусы, то плюсов здесь гораздо больше, а минусы весьма незначительные. Такой поисковый движок будет полезен для интернет-магазинов, где нахождение товара пользователем является значимым.

Есть и другие поисковые движки, которые при определенных требованиях могут оказаться полезными. Какие знаете вы?