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

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

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

Стоимость разработки на 1С-Битрикс:

Индивидуальная разработка магазина

от 500 000 руб. от 5-ти недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Запуск сайта на готовом решении

от 100 000 руб. от 7-ми дней

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

Мобильное приложение

от 500 000 руб. от 1-го месяца

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Сайт компании

от 350 000 руб. от 1-го месяца

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Инфресурс

от 400 000 руб. от 5-ти недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Лечение сайтов от вирусов

от 40 000 руб. от 2-х дней

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