Добавление синонимов через функцию

Добрый день!
Опишу сначала проблему: В наших документах иногда встречаются слова с замененными визуально похожими буквами, например, русская "а" и английская "а". Это создает проблемы во время поиска.

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

Вы можете проиндексировать поле дважды - один раз как есть, второй раз, с переводом всех похожих латинских букв в кириллицу с помощью фильтра символов mapping.

Хорошая идея, но к сожалению хранить 2 экземпляра слишком дорого, к тому же в слове может быть более одной измененной буквы, поэтому я рассчитывал сохранить всевозможные комбинации в качестве синонимов. Подстановка рядом в документ всех комбинаций тоже не подходит по причине поиска в окрестности.

Видимо единственный вариант это перебирать комбинации во время составления поискового запроса.

Вы не будете хранить 2 экземпляра - у вас будет 2 индекса.

к тому же в слове может быть более одной измененной буквы,

Это все равно, все буквы будут заменены на кириллицу.

поэтому я рассчитывал сохранить всевозможные комбинации в качестве синонимов

Это на мой взгляд заплатка, а не решение. Ни к чему хорошему в долгосрочной перспективе это не приведет. Но, если вы хотите это делать, то проще всего это будет сделать в вашем приложении во время генерирования запроса.

Если быть точнее, мне нужно заменять не во всех случаях, а только когда в слове вдруг промелькнула среди русских букв английская. Я смотрю есть Pattern Replace Char Filter так что если составить регулярки на поиск таких ситуаций - это решит мою проблему.

Тогда уж лучше Pattern Replace Token Filter.

Спасибо за помощь!

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.