Задача: установить и сконфигурировать поиск Sphinx под управлением Ubuntu 22.04 и панели управления HestiaCP для использования с 1С-Битрикс
Sphinx — это система для быстрого и эффективного полнотекстового поиска в больших объемах текстовых данных. Она позволяет сделать поиск на сайте быстрым и качественным, а также снизить нагрузку на сервер. Sphinx доступен в продуктах "1С-Битрикс" и полностью интегрирован с компонентами модуля "Поиск"
Предварительно установите HestiaCP на ваш сервер Ubuntu 22.04 и оптимизируйте его для работы с 1С-Битрикс, включая кеширование в оперативной памяти с Redis. Инструкцию по установке HestiaCP с Redis можно найти в видео по ссылке, под названием "1С-Битрикс с кешированием в Redis".
Установка Sphinx на Ubuntu 22
Подключитесь к серверу по SSH и выполните следующую команду для установки Sphinx из репозиториев Ubuntu:
sudo apt install sphinxsearch
Вам может потребоваться ввести пароль, что бы выполнить команду с правами суперпользователя.
Создайте файл конфигурации для Sphinx по пути /etc/sphinxsearch/sphinx.conf и добавьте в него рекомендуемые параметры для 1С-Битрикс:
searchd
{
listen = 9312
listen = 9306:mysql41
log = /var/log/sphinxsearch/searchd.log
query_log = /var/log/sphinxsearch/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinxsearch/searchd.pid
seamless_rotate = 1
preopen_indexes = 1
unlink_old = 1
workers = threads
binlog_path = /var/lib/sphinxsearch/data/
binlog_max_log_size = 512M
binlog_flush = 2
rt_flush_period = 3600
}
indexer
{
lemmatizer_cache = 128M
}
common
{
lemmatizer_base = /etc/sphinxsearch/dicts/
}
index tecam
{
type = rt
path = /var/lib/sphinxsearch/data/bitrix
docinfo = inline
morphology = stem_enru, soundex
dict = keywords
prefix_fields = title
infix_fields=
min_prefix_len = 2
rt_field = title
rt_field = body
rt_attr_uint = module_id
rt_attr_string = module
rt_attr_uint = item_id
rt_attr_string = item
rt_attr_uint = param1_id
rt_attr_string = param1
rt_attr_uint = param2_id
rt_attr_string = param2
rt_attr_timestamp = date_change
rt_attr_timestamp = date_to
rt_attr_timestamp = date_from
rt_attr_uint = custom_rank
rt_attr_multi = tags
rt_attr_multi = right
rt_attr_multi = site
rt_attr_multi = param
}
Обратите внимание на ID создаваемого индекса (в данном случае указано index tecam { ... }). Если планируете использовать Sphinx на нескольких сайтах, рекомендуется создавать уникальный индекс для каждого. Однако вы также можете использовать общий индекс в зависимости от требований и структуры ваших сайтов.
Конкретно на HestiaCP, не рекомендую задавать длинну индетификатора более 6-ти символов - могут возникнуть проблемы
Затем запустите Sphinx в качестве службы:
sudo service sphinxsearch start
И выполните индексацию:
sudo indexer --all
Чтобы Sphinx запускался при старте системы, добавьте следующую строку в конец файла /etc/default/sphinxsearch (если строка уже существует, перепишите ее):
START=yes
Настройка поиска Sphinx на стороне 1С-Битрикс
- Перейдите в админ-панель 1С-Битрикс.
- Откройте настройки модуля "Поиск" по пути:
Настройки > Настройки продукта > Настройки модулей > Поиск
. - На вкладке "Морфология" выберите "Sphinx" в настройке "Полнотекстовый поиск с помощью".
- Укажите ID индекса, как он указан в конфигурационном файле Sphinx (в моем случае "tecam").
- Сохраните изменения.
Перезапустите сервис службы sphinx и переиндексируйте:
sudo service sphinxsearch restart
sudo indexer --all
Обновите страницу настроек морфологии и 1С-Битрикс предложит выполнить полную переиндексацию модуля поиска — выполните эту операцию. Настройка Sphinx в качестве поискового механизма на Ubuntu 22.04 с использованием HestiaCP завершена.
Видеоиструкция: поиск Sphinx на Ubuntu 22.04
Это запись прямой трансляции, в которой рассказал как установить и настроить поиск Sphinx на Ubuntu 22.04