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