LINUX.ORG.RU

Sphinx:Не ищет по слову «очки»

 , ,


0

2

Приветствую.

Сайт на базе Битрикс, подключен Sphinx 2.2.10.

Поиск, в целом, работает корректно.

Но возникла проблема со словом «очки» - не ищет, хоть тресни! Если пробовать вариации слова: «очку» «очкина» «очкину» «очкины» «очкино» «очки» «очмо» «очкиа» «очкин», то не ищется еще и «очку».

Проверялось в MySQL-консоли sphinx.

Что можно настроить, чтобы искалось по этому слову?

index site { #main settings type = rt path = /var/lib/sphinx/site ondisk_attrs=1 morphology = lemmatize_ru_all, lemmatize_en_all, lemmatize_de_all, stem_enru #morphology = stem_enru, soundex dict = keywords prefix_fields = title infix_fields= min_prefix_len = 3 rt_field = name rt_field = body rt_field = cont rt_field = cont_c rt_field = keywords rt_field = color 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 stopwords = /etc/sphinx/stopwords.txt }

common { lemmatizer_base = /etc/sphinx/dicts/ # lemmatizer_base в Sphinx 2.2.1+ располагается в секции common }

indexer { mem_limit = 384M lemmatizer_cache = 384M }

searchd { listen = 9312 listen = 9306:mysql41 log = /var/log/sphinx/searchd.log query_log = /var/log/sphinx/query.log read_timeout = 5 max_children = 50 pid_file = /var/run/sphinx/searchd.pid seamless_rotate = 1 preopen_indexes = 1 unlink_old = 1 workers = threads # for RT to work binlog_path = /var/lib/sphinx/ }

Стоп-слова в, на, из, для, за, изо, к, ко, о, об, от, ото, по, с, со, у



Последнее исправление: Jalart (всего исправлений: 4)

Ответ на: комментарий от anonymous

Сочувствую сему, не без сомнения, достойному господину, который настолько многоопытен, который забыл больше, чем узнал. Как я вижу сей сударь настолько стеснителен, что опасается пользоваться очками, иначе он мог бы заметить, что основная проблема в sphinx. А где он работает - это уже вторично.

Jalart
() автор топика
Ответ на: комментарий от ThisNameWasFree

Отсутствует напрочь в конфиге. Хотя странно - по умолчанию он равен 1, т.е., с моей точки зрения, слово «очки» должно было проиндексироваться.

Я только сегодня вечером смогу проверить результаты с этим параметром. По результатам отпишусь.

Jalart
() автор топика
Ответ на: комментарий от l0stparadise

К сожалению, такое впечатление, что у меня это форматирование не работает вообще. Ни cut, ни code. Chrome под KUbuntu.

Jalart
() автор топика
Ответ на: комментарий от ThisNameWasFree

В итоге:

До использования min_word_len в /etch/sphinx/sphinx.conf

mysql -u USENAME -p -P9306 --protocol=tcp

mysql> call keywords('очки', 'bitrix'); Empty set (0,00 sec)

mysql> select id, item, param1, param2 from bitrix where match('очки'); Empty set (0,00 sec)

После использования min_word_len=3 в /etch/sphinx/sphinx.conf и полной переиндексации сайта.

mysql -u USENAME -p -P9306 --protocol=tcp

mysql> select id, item, param1, param2 from bitrix where match('очки'); +-------+----------+--------+--------+ | id | item | param1 | param2 | +-------+----------+--------+--------+ | 1939 | 112346 | data | 12 | ... | 1017 | 147571 | data | 61 | ... | 12648 | 112348 | data | 32 | +-------+----------+--------+--------+ 20 rows in set (0,00 sec)

mysql> call keywords('очки', 'bitrix'); +------+-----------+------------+ | qpos | tokenized | normalized | +------+-----------+------------+ | 1 | очки | о | +------+-----------+------------+

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.