我正在使用 Lucene 并StandardAnalyzer
在我的代码中创建索引,但是,“Yo”和“Ye”(Ё 和 Е)存在问题。
我想要带有“yo”的搜索结果也需要带有“ye”的结果,反之亦然。我尝试StandartAnalyzer
使用自定义过滤器创建新的 Analyzer 类,类似于 ,但我没有运气。我也很熟悉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)