Конфигурирование sphinx


Sphinx - отличный движок для организации полнотекстового поиска. Работает он по понятной 
схеме - в соответствии с конфигурацией создает полнотекстовый поисковый индекс по указанному 
ресурсу, и позволяет в дальнейшем проводить поиск по этому индексу. Индекс получается не 
маленький, особенно для больших  текстовых документов, - может достигать размера самой базы 
данных. Зато поиск - очень эффективен.

Главный и единственный файл конфигурации - /etc/sphinx/sphinx.conf

В нем содержиится несколько секций:

indexer
{
# Ограничения индексатора
}

searchd
{
# Опции демона
}

source <name> 
{
# Источники данных для индекса <name>
}

index <name>
{
# Свойства индекса <name>
}

Последние две секции могут повторяться - т.е. можно создать много разных индексов по разным 
источникам. Обновить индексы из командной строки можно так:

# indexer --all --rotate

А искать по ним:

# search -i <indexname> <word_or_phrase>

В общем, чтобы освоить механизм sphinx - много усилий не требуется - все хорошо расписано в 
официальной документации и в комментариях. Единственный момент, который я часто поправляю на 
своих серверах - это разделение одного большого конфига на несколько маленьких, поскольку так 
работать с разными индексами намного удобнее. Делается это так.

Делаем главный файл /etc/sphinx/sphinx.conf исполняемым (chmod +x sphinx.conf) и внутри 
оставляем только такие строки:

#!/bin/bash
/bin/cat /etc/sphinx/conf/*.conf

Дальше делаем каталог /etc/sphinx/conf и создаем в нем файлы с расширением *.conf, в которые 
помещаем содержимое соответствующей секции:

indexer.conf
searchd.conf
myindex1.conf
myindex2.conf
...

Т.е. таким образом каждую секцию конфигурации мы вынесли в отдельный файл и теперь 
редактировать и отлаживать нужный индекс стало намного удобнее.

Удачи всем!