Русские синонимы в elasticsearch

713 views
Skip to first unread message

Vitaly Volkov

unread,
Jun 4, 2013, 2:58:23 AM6/4/13
to elastics...@googlegroups.com
Привет всем!

Пытаюсь заставить elasticsearch работать с синонимами и столкнулся с тем, что ES отказывается использовать синонимы с не-английскими буквами (русскими). Уверен, что я что-то делаю неправильно, или же просто не доделал. Сам конфиг индекс выложил на gist: https://gist.github.com/hash3g/5704063

Вот мой набор синонимов 

jee,java
Киев, Kyiv

С первыми синонимами поиск работает и результаты для jee и java одинаковы, что и требуется, но вот второй ряд всячески отказывается работать и выдает разные результаты для двух слов.

Буду благодарен помощи.

Igor Motov

unread,
Jun 4, 2013, 8:00:41 AM6/4/13
to elastics...@googlegroups.com
Я думаю, тут дело не русских/английских буквах, тут дело в регистре. Фильтр syns_filter стоит после фильтра lowercase в цепочке фильтров. То есть токены приходят в syns_filter уже в нижнем регистре, и он просто не находит токен Киев для того, чтобы его заменить. Попробуйте перевести все буквы в списке синонимов в нижний регистр: 

"synonyms": ["киев,kyiv", "jee,java"],

Vitaly Volkov

unread,
Jun 4, 2013, 11:54:18 AM6/4/13
to elastics...@googlegroups.com
Оно работает! :-) Спасибо огромное, что то я про фильтр lowercase совсем не подумал.

вторник, 4 июня 2013 г., 15:00:41 UTC+3 пользователь Igor Motov написал:
Reply all
Reply to author
Forward
0 new messages