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聊天记录生成词云看看你和你的女友聊了什么