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


#1

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

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


(Igor Motov) #2

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


#3

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

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


(Igor Motov) #4

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

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

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

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

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


#5

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


(Igor Motov) #6

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


#7

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


(system) #8

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