【问题标题】:Lucene analyzer to handle yo and ye (Russian characters)处理 yo 和 ye 的 Lucene 分析器(俄语字符)
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

    • 谢谢,有帮助!
    猜你喜欢
    • 2010-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-12
    相关资源
    最近更新 更多