Несколько конфигов Sphinx

На компьютере разработчика может работать сразу несколько сайтов. Для разных сайтов могут быть заведены свои поисковые индексы Sphinx. Чтобы было удобно управлять разными конфигурациями, лучше завести отдельные конфигурационные файлы для каждого сайта, один общий конфиг и основной конфиг, который использует Sphinx. Вот как это сделать.
Начиная с версии Sphinx 0.9.8 (14 июля 2008 года) доступно задавать конфиг в виде скрипта. Сначала я попробовал сделать, как предложено в статье "Разделение конфигов Sphinx", но у меня не завелось. Возможно, из-за того, что я предпочитаю хранить конфиги в одном месте, а не в каталоге каждого сайта, как автор той статьи. Все мои конфиги Sphinx находятся к каталоге /etc/sphinx
Итого я имею:
1. список конфигов с именами "10-site1.part.conf", "10-site2.part.conf". Где число в начале - порядок для дальнейшей сборки в один файл (у меня все десятки). В конфигах обозначены настройки source и index
2. конфиг с общими настроками "90-common.part.conf". Содержимое:

common
{
    lemmatizer_base     = /usr/local/share/sphinx/dicts
}

indexer
{
    lemmatizer_cache    = 128M # from bitrix course
}

searchd
{
    listen              = 127.0.0.1:9312
    listen              = 9306:mysql41
    log                 = /usr/lib/tmpfiles.d/log/sphinx/searchd.log
    query_log           = /usr/lib/tmpfiles.d/log/sphinx/query.log
    read_timeout        = 5
    max_children        = 30

    pid_file            = /usr/lib/tmpfiles.d/run/sphinx/searchd.pid

    seamless_rotate     = 1
    preopen_indexes     = 1
    unlink_old          = 1

    binlog_path         = /usr/lib/tmpfiles.d/lib/sphinx
    binlog_max_log_size = 16M
    rt_flush_period     = 3600 # from bitrix course
}
3. основной конфиг, который запрашивает Sphinx - sphinx.conf. Этот конфиг собирает воедино все конфиги. Его содежимое:

#!/bin/bash

find /etc/sphinx -type f -name "*.part.conf" -print | xargs cat
Таким образом, если поиск на каком-то сайте мне не требуется, то нужно лишь переименовать файл его конфига (например "10-site1.bak.conf"). А если требуется добавить ещё один сайт, то стоит скопировать уже имеющийся конфиг и исправить его.
Эта схема разбиения конфигов Sphinx отлично работает с Sphinx 2.2.11 на Fedora 24


Комментарии

  1. Понимаю что тема старая,но возник вопрос, при использовании данной схемы поиск начинает выдавать нормальные результаты только на сайте #1 , на сайтах #2 и #3 в выдаче появляются позиции никак не связанные с искомой фразой..

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Пропорциональное распределение суммы

Битрикс: своя геолокация

Bitrix24 API - разбор демо приложения третьего типа