Я использую Lucene и StandardAnalyzer
для создания индексов в моем коде, однако есть проблема с 'Yo' и 'Ye' (Ё и Е).
Я хочу, чтобы результаты поиска с «yo» также давали результаты с «ye», и наоборот. Я попытался создать новый класс Analyzer, похожий на StandartAnalyzer
, с настраиваемым фильтром, но безуспешно. Я также хорошо знаю RussianAnalyzer
, но, похоже, у меня это не работает, так как трактует «йо» и «йе» отдельно.
Вот фрагмент, в котором я использую этот анализатор:
QueryParser queryParser = new QueryParser("myText", new MyAnalyzer());
queryParser.setDefaultOperator(QueryParser.Operator.AND);
После этого я выполняю queryParser.parse()
и другие элементы построения запросов для поиска.
Возникает вопрос: как правильно делать эту операцию? Должен ли я использовать свой собственный TokenFilter? Или, может быть, мой собственный CharFilter?
Википедия ссылается на рассматриваемого персонажа: https://en.wikipedia.org/wiki/Yo_(Cyrillic) https://en.wikipedia.org/wiki/Ye_(Cyrillic)