【发布时间】:2018-07-31 01:26:24
【问题描述】:
我正在使用 Lucene 和 StandardAnalyzer 在我的代码中创建索引,但是,“Yo”和“Ye”(Ё 和 Е)存在问题。
我希望带有 'yo' 的搜索结果也产生带有 'ye' 的结果,反之亦然。我尝试使用自定义过滤器创建新的 Analyzer 类,类似于 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)
【问题讨论】:
标签: java lucene query-parser