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

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

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

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

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

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

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

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

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

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

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

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

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

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