Содержание
Параметры индексирования 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
, то результаты становятся более релевантны за счет хранения оригинального слова, а не его части.
Увеличивает размер индекса.