Запуск Sphinx или как улучшить поиск на Битрикс
Sphinx – система полнотекстового поиска, которая была разработана нашим соотечественником Андреем Аксеновым. Характерной чертой этого поискового движка является его быстрая индексация и поиск.
Благодаря Sphinx поиск по сайту на Битрикс становится качественней и значительно быстрее по сравнению с обычным поиском. К тому же, уменьшается нагрузка на сервер.
В Битриксе включить поиск с помощью Sphinx совсем не сложно, на самом деле он уже интегрирован с поисковым модулем. Остается только установить Sphinx на ваш сервер и внести настройки в поисковый модуль Битрикс.
В данной статье я опишу как установить Sphinx и подключить его к сайту.
Как установить Sphinx
Если у вас сайт уже работает на VM Bitrix, то запуск Sphinx становится простым, как пять копеек. Речь пойдет исключительно об установке на VM Bitrix.
Для установки Sphinx необходимо зайти в меню виртуальной машины на вашем сервере и выбрать пункт: 7. Configure Sphinx service for the pool
Затем, выбрать пункт 1. Create sphinx instance on the server
И ввести название из колонки Hostname
Далее, по пункту Enter the name of the database that will use sphinx пишем название базы данных вашего сайта. На заметку: она будет отображаться выше, в листинге сайтов в колонке dbname.
А на вопрос Re-index the site after creating a sphinx instance? вы можете попросить Битрикс сделать переиндексацию поиска, после создания. Если сайт боевой и на сайте много товаров, то лучше сделать переиндексацию отдельно в часы минимального посещения пользователями и ответить N.
После этого задача начнет выполняться какое-то время, в зависимости от объема данных и мощности сервера. Вы можете посмотреть логи задачи в меню VM Bitrix: 10. Background pool tasks > 1. View running tasks .
После успешной установки, если необходимо поиск сделать лучше, идем настраивать конфигурацию Sphinx.
Настройка конфигурации Sphinx
Для хорошего и качественного поиска рекомендуется внести настройки в конфигурацию Sphinx. Но прежде всего, надо понимать какие директивы вы будете использовать и как они работают. На сайте highload.today о некоторых из них уже рассказано.
После установки для сайта будет создана конфигурация по пути на сервере: /etc/sphinx/bx/search_index/. Файл состоит из названия вашего сайта и расширения conf.
Я рекомендую добавить в этот конфигурационный файл две строки, улучшающие поиск по части слова без использования 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 – шустрый и гибкий поиск, который по необходимости можно настроить при помощи конфигурации. Он легко включается в Битриксе за счет встроенной интеграции в поисковом модуле.
Если искать плюсы и минусы, то плюсов здесь гораздо больше, а минусы весьма незначительные. Такой поисковый движок будет полезен для интернет-магазинов, где нахождение товара пользователем является значимым.
Есть и другие поисковые движки, которые при определенных требованиях могут оказаться полезными. Какие знаете вы?