处理 yo 和 ye(俄语字符)的 Lucene 分析器

Lucene analyzer to handle yo and ye (Russian characters)

我正在使用 Lucene 和 StandardAnalyzer 在我的代码中创建索引,但是,'Yo' 和 'Ye'(Ё 和 Е)存在问题。

我希望 'yo' 的搜索结果也能产生 'ye' 的结果,反之亦然。我尝试创建新的 Analyzer class,类似于 StandartAnalyzer,带有自定义过滤器,但我这边运气不好。我也很了解 RussianAnalyzer,但它似乎对我不起作用,因为它分别对待 'yo' 和 'ye'。

这是块,我正在其中使用此分析器:

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)

乍一看,我认为您需要创建一个将 'yo' 映射到 'ye' 的 CharFilter,因为人为错误偶尔会发生这种情况(请参阅上面的 'Yo' 页) 因此您更有可能通过 'yo' -> 'ye' 映射找到您想要的内容。请记住,此映射需要在搜索和索引期间进行。