Lucene和\或JFlex中的字符转换规则

Lucene和\或JFlex中的字符转换规则,lucene,jflex,Lucene,Jflex,我是Lucene的新手,没有足够的时间浏览整个文档。 我们使用Lucene荧光笔突出显示比赛。据我所知,Lucene本身正在使用JFlex引擎。 当前任务需要引入新的语言支持。。根据要求,像ειναι这样的词应该与είναι匹配,反之亦然。人们在键入消息时通常避免使用重音,因此带重音的单词必须与不带重音的单词匹配。 所以,我的问题是我们是否可以在Lucene或JFlex中指定字符转换规则,比如U+038A->U+03B9?? 任何帮助都将不胜感激 不确定角色转换……但您可以做几件事: 应用IS

我是Lucene的新手,没有足够的时间浏览整个文档。 我们使用Lucene荧光笔突出显示比赛。据我所知,Lucene本身正在使用JFlex引擎。 当前任务需要引入新的语言支持。。根据要求,像ειναι这样的词应该与είναι匹配,反之亦然。人们在键入消息时通常避免使用重音,因此带重音的单词必须与不带重音的单词匹配。 所以,我的问题是我们是否可以在Lucene或JFlex中指定字符转换规则,比如U+038A->U+03B9??
任何帮助都将不胜感激

不确定角色转换……但您可以做几件事:

  • 应用ISOLatin1AccentFilter(在分析器中),以便在非重音搜索中将重音单词视为匹配项。

  • 使用Lucene模糊搜索 搜查


从我使用的情况来看,它不是一个简单的配置设置。索尔可能有这样的想法。Lucene是一个简单的库,通常可以让您灵活地确定“业务逻辑所在”…在搜索、分析器/过滤器或索引设计本身中。

谢谢您的回复,但这并不是我一直在寻找的。似乎更好的解决方案是在jflex文件中指定新的令牌类型,并在word被分类后立即应用转换规则。您确定ISOLatin1AccentFilter对您没有帮助吗?如果您在索引和搜索时都使用它,您可以通过重音和非重音变体来查找重音单词,这正是您想要的。(虽然你也可以通过搜索重音词来找到一个非重音词——这就是问题所在吗?)