Lucene分析仪处理你和你(俄罗斯字符)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lucene分析仪处理你和你(俄罗斯字符)相关的知识,希望对你有一定的参考价值。

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

我想要'yo'的搜索结果也是'ye'的结果,反之亦然。我尝试使用自定义过滤器创建类似于StandartAnalyzer的新Analyzer类,但我没有运气。我也很了解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)

答案

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

以上是关于Lucene分析仪处理你和你(俄罗斯字符)的主要内容,如果未能解决你的问题,请参考以下文章

Python实战:导出QQ聊天记录生成词云看看你和你的女友聊了什么

“-”字符的 Lucene 索引问题

什么是副本??

lucene

设计模式 结构型模式 -- 享元模式(定义 示例 优缺点分析 使用场景)

关于JavaScript对象深度克隆