sphinx+bitrix: "антисепти" и "антисептик" выдают абсолютно разные результаты

Есть сайт на битриксе 20.0.600
последний sphinx 3.1.1

Есть несколько товаров со словом "антисептический" в названии.
Если ищу "антисепти", то выдает все 5 нужных позиций и еще несколько не релевантных
Если ищу "антисептик, то выдает какой-то мусор.

я добавил в конфиг wordforms, в котором единственная запись:

~антисептик => антисепт

проверял keywords sphinx'a в мускулевском шелле:

mysql> call keywords ('антисептик', 'bitrix');
+------+----------------------+------------------+
| qpos | tokenized | normalized |
+------+----------------------+------------------+
| 1 | антисептик | антисепт |
+------+----------------------+------------------+
1 row in set (0.00 sec)

mysql> call keywords ('антисепти', 'bitrix');
+------+--------------------+------------------+
| qpos | tokenized | normalized |
+------+--------------------+------------------+
| 1 | антисепти | антисепт |
+------+--------------------+------------------+
1 row in set (0.00 sec)

в обоих проверенных нормализованное слово то, которое я и задавал в wordforms. Т.е. по идее и выдача должна быть одинакова. Но это даже близко не так.

В чем может быть причина?
Может кто-нибудь сталкивался с подобным?
Не могу понять то ли в конфиге проблема или это битриксовская реализация сфинкса так отрабатывает

Заранее благодарен


конфиг сфинкса:

    #
# Minimal Sphinx configuration for Bitrix
#

common
{
        lemmatizer_base = /etc/sphinxsearch/dicts/
}

searchd
{
        listen = 9312
        listen = 9306:mysql41
        log = /etc/sphinxsearch/logs/searchd.log
        query_log = /etc/sphinxsearch/logs/query.log
        read_timeout = 5
        max_children = 30
        pid_file = /etc/sphinxsearch/searchd.pid
        seamless_rotate = 1
        preopen_indexes = 1
        unlink_old = 1
        workers = threads # for RT to work
        binlog_path = /etc/sphinxsearch/data/
        binlog_max_log_size = 512M
        binlog_flush = 2
        rt_flush_period = 3600
        # lemmatizer_base = /etc/sphinxsearch/dicts/
}


index bitrix
{
        #main settings
                type = rt
                path = /etc/sphinxsearch/data/bitrix
                # docinfo = inline
        #choose appropriate type of morphology to use
                morphology = stem_enru, soundex
                wordforms = /etc/sphinxsearch/dicts/wordforms.txt
        #these settings are used by bitrix:search.title component
                min_word_len = 3
                html_strip = 1
                min_infix_len = 3
                min_prefix_len = 3
                expand_keywords = 1
                # index_exact_words = 1
                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+0435, U+451->U+0435

                # dict = keywords
                # prefix_fields = title
                # infix_fields=
                # min_prefix_len = 2
        #all fields must be defined exactly as followed
                rt_field = title
                rt_field = body
                rt_attr_uint = module_id
                rt_attr_string = module
                rt_attr_uint = item_id
                rt_attr_string = item
                rt_attr_uint = param1_id
                rt_attr_string = param1
                rt_attr_uint = param2_id
                rt_attr_string = param2
                rt_attr_timestamp = date_change
                rt_attr_timestamp = date_to
                rt_attr_timestamp = date_from
                rt_attr_uint = custom_rank
                rt_attr_multi = tags
                rt_attr_multi = right
                rt_attr_multi = site
                rt_attr_multi = param
        #depends on settings of your site
                # uncomment for single byte character set
        # charset_type = sbcs
                # uncomment for UTF character set
                #charset_type = utf-8
}

Ответы (0 шт):