sphinx

Встала проблема объединения конфигурационных файлов Sphinx'a, погуглив не нашел решения на уровне приложения и решил сделать своё.

Создаем каталог «sphinx», где будем хранить все конфигурационные файлы sphinx'a:

mkdir /usr/local/etc/sphinx

Далее, складываем туда все файлы конфигов с разных хостов, например:

/usr/local/etc/sphinx/adw0rd.ru.conf
/usr/local/etc/sphinx/pyha.ru.conf

и убираем оттуда директивы «indexer» и «searchd».

Теперь, создаем там файлы «indexer.conf» для настройки индексатора и «searchd.conf» для настройки демона сфинкса:

/usr/local/etc/sphinx/indexer.conf
/usr/local/etc/sphinx/searchd.conf

Примерное содержимое файла «indexer.conf»:

indexer
{
        mem_limit = 32M
}

Примерное содержимое файла «searchd.conf»:

searchd
{
        address = 127.0.0.1
        port = 3312
        log = /var/log/sphinxsearch/searchd.log
        query_log = /var/log/sphinxsearch/sphinx-query.log
        read_timeout = 5
        max_children = 30
        pid_file = /var/run/sphinxsearch/searchd.pid
}

Далее, пишем скрипт, объединяющий наши файлы конфигов:

#!/bin/sh
/bin/cat /usr/local/etc/sphinx/*.conf

и указываем этот файл как конфигурационный файл сфинкса в «/usr/local/etc/rc.d/sphinxsearch»:

: ${sphinxsearch_conffile="/usr/local/etc/sphinx.conf.sh"}

Примеры использования

Индексация:

indexer --config /usr/local/etc/sphinx.conf.sh --all
indexer --config /usr/local/etc/sphinx.conf.sh --rotate

Запуск демона

searchd --config /usr/local/etc/sphinx.conf.sh
/usr/local/etc/rc.d/sphinxsearch start

Комментарии (5) на запись «Инклуд конфигов Sphinx»

» Трекбеки скрыты, показать их?
  1. alpha_Qu4z4r | 03.11.2009 в 15:23

    А зачем приучать? Можно сделать алиас:

    echo 'alias chown="chown -v"' >> ~/.bashrc

    Правда на счёт кавычек не уверен, возможно внутренние нужно экранировать.

  2. adw0rd | 03.11.2009 в 15:32

    ты не туда запостил )

    и я юзаю csh

  3. rtm | 21.11.2009 в 12:39

    отличный совет!

    ещё можно переименовать sphinx.conf.sh в sphinx.conf

    а конфигурационные файлы называть например searchd.cnf

    тогда не прийдётся писать

    #searchd --config /usr/local/etc/sphinx.conf.sh

    просто #searchd

  4. adw0rd | 21.11.2009 в 23:09

    rtm, ага :)

  5. Pandora | 03.11.2010 в 01:11

    если у вас запущено много процессов индексации сфинкса я бы делал ллимит на I/O диска

    # maximum IO calls per second (for I/O throttling)

    max_iops = 40 — 60

    и поигрался с параметром sql_ranged_throttle в главном идексе

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