Параметры индексирования Sphinx

Параметры индекса Sphinx настраиваются в секции index {} в виде param = value.

Минимальный набор:

параметр пример значения описание
source <?=$sourceName . PHP_EOL;?> имя источника
path <?=$path . PHP_EOL; ?> путь
docinfo extern способ хранения опций
morphology stem_ru морфология, возможно указать несколько: stem_ru, stem_en или stem_enru, Soundex, Metaphone (поиск по совпадению звучания)
min_stemming_len 3 минимальная длина слова, при которой включается стемминг
enable_star 1) 1 звездочки в запросах, например *борон* => оборона, борона
min_word_len 2 минимальная длина слова для индексации
min_infix_len 2 минимальная длина инфиниксов
min_prefix_len 3 минимальная длина префикса
charset_type 2) utf-8 кодировка
charset_table /, 0..9, A..Z->a..z, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F, U+401->U+435, U+451->U+435 таблица допустимых символов
html_strip 1 1 - удалять HTML-теги, 0 - не удалять
wordforms /path/wordforms.txt словоформы, для исправления ошибок стемминга, а также можно использовать как словарь синонимов в формате ispell или MySpell (можно сделать в Open Office)
stopwords /path/stopwords.txt стоп-слова, не индексируются
blend_chars - смешанные символы: и допустимы с словах, и разделители слов одновременно

Дополнительные опции:

html_remove_elements script какие HTML элементы удалять
html_index_attrs img=alt,title; a=title индексирование HTML-атрибутов
expand_keywords 1 автоматически расширяет поисковый запрос до трех запросов running => running + *running* + =running
index_exact_words 1 хранить оригинальное слово, увеличивает релевантность если выставлена опция expand_keywords
ignore_chars U+AD игнорировать символы, как будто их вообще нет в тексте, слова «склеятся» и будут считаться одним словом, в примере - символы мягкого переноса

min_infix_len

Если min_infix_len=2, то test будет искаться по te, es, st, tes, est.

Меньшее значение создает слишком много мусора и сильно увеличивает индекс. Рекомендуемое значение min_infix_len = 3.

:!: При большом количестве документов лавинообразно растет размер индекса.

min_prefix_len

Если min_prefix_len=3, то «example» будет искаться как «exa», «exam», «examp», «exampl» и все слово.

charset_table

U+401->U+435, U+451->U+435 - заставляет не делать различия между «Е» и «Ё».

index_exact_words

Если также выставлена опция expand_keywords, то результаты становятся более релевантны за счет хранения оригинального слова, а не его части.

:!: Увеличивает размер индекса.

1) , 2) deprecated начиная с версии 2.2.1, следует удалить из конфига