Установка поиска Sphinx на Ubuntu 22.04 для 1С-Битрикс

Просмотров: 890

Задача: установить и сконфигурировать поиск 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 на 1С-Битрикс

Перезапустите сервис службы sphinx и переиндексируйте:

sudo service sphinxsearch restart
sudo indexer --all

Обновите страницу настроек морфологии и 1С-Битрикс предложит выполнить полную переиндексацию модуля поиска — выполните эту операцию. Настройка Sphinx в качестве поискового механизма на Ubuntu 22.04 с использованием HestiaCP завершена.

Видеоиструкция: поиск Sphinx на Ubuntu 22.04

Это запись прямой трансляции, в которой рассказал как установить и настроить поиск Sphinx на Ubuntu 22.04

Михаил Базаров 10.01.2024
Данная инструкция подойдет для настройки Sphinx на любом окружении. Привязки к конкретной панели управления (типа HestiaCP) нет.