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
}