Меню

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

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

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

Гость 11.10.2024
Добрый день!

UBUNTU 22 + fustpanel. Следуя данной инструкции, после ввода команды:
sudo indexer –all
В консоле получаю ошибку:
Код
FATAL: no indexes found in config file '/etc/sphinxsearch/sphinx.conf'

При попытке сохранить настройки в битрикс – ошибка:
Ошибка подключения к серверу Sphinx: Ошибка подключения (Connection refused).
В /bitrix/php_interface/dbconn.php подключение к базе данных указано.
Чем может быть вызвана ошибка?
Михаил Базаров 11.10.2024
Давненько с  fastpanel не пересекался, но судя по ошибке
в битриксе в dbconn.php укажите данные для подключения к БД. Оно там пытается искать
Гость 25.10.2024
Добрый день!
Такая же проблема, помогите решить.

sudo indexer –all
В консоле получаю ошибку:[
FATAL: no indexes found in config file '/etc/sphinxsearch/sphinx.conf

При попытке сохранить настройки в битрикс – ошибка:
Ошибка подключения к серверу Sphinx: Ошибка подключения (Connection refused).
В /bitrix/php_interface/dbconn.php подключение к базе данных указано.
Гость 26.10.2024
Какой-то момент упускаете. Шел строго по инструкции, все завелось на fastpanel
Гость 13.11.2024
sudo indexer –all как это должно работать для rt индексера? авто вы явно не поняли то что писали  
Михаил Базаров 13.11.2024
Согласен. RT индексы обновляются в реальном времени.
Но, не стал разбираться почему, именно первый запуск индексов ни в какую не хочет работать без "sudo indexer –all"
Заметка написана на реальном опыте - допускаю что в чем то не разобрался.
Но, по итогу заметки все работает как нужно.

Если есть чем дополнить, абсолютно не против если напишите сюда - как все это делается правильно.

Стоимость и сроки разработки сайтов и приложений

Окончательная стоимость и сроки разработки сайта формируются после обсуждения деталей на этапе заказа. Как правило, они редко выходят за обозначенные ниже рамки.

Интернет магазин: разработка с нуля от 400 000 руб.
от 5-ти недель

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

Интернет-магазин на готовом решении от 100 000 руб.
от 7-ми дней

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

Мобильное приложение от 400 000 руб.
от 1-го месяца

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

Опросник на разработку. После ознакомления, задам уточняющие вопросы и оценю проект по стоимости и срокам разработки.