首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Lucene StandardAnalyzer 3.5 TypeAttribute

Lucene StandardAnalyzer 3.5 TypeAttribute
EN

Stack Overflow用户
提问于 2011-12-27 12:26:36
回答 1查看 417关注 0票数 0

我最近注意到,自版本3.1以来,Lucene StandardAnalyzer的行为发生了一些变化。具体来说,3.0和以前的版本将电子邮件、IP地址、公司名称等识别为单独的词法类型,而后期版本则不然。

例如,对于输入文本:"example@mail.com 127.0.0.1H&M“,3.0分析器将识别以下类型:

1: example@mail.com: 0->16:<电子邮件>

2: 127.0.0.1: 17->26:<主机>

3: h&m: 27->30:<COMPANY>

但是,3.1版和更高版本为相同的输入文本提供了以下输出:

1:示例: 0->7:<ALPHANUM>

2: mail.com: 8->16:<ALPHANUM>

3: 127.0.0.1: 17->26:<NUM>

我的问题是,如何使用较新版本的Lucene库实现旧的StandardAnalyzer行为?是否有一些标准的TokenFilters可以帮助我实现这一点,或者我是否需要实现自定义过滤器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-27 19:57:31

参见StandardAnalyzer的javadocs :从3.1开始,StandardTokenizer实现了Unicode文本分段.ClassicTokenizer和ClassicAnalyzer是StandardTokenizer和StandardAnalyzer的前3.1实现。

或者,您可以将LUCENE_30版本传递给StandardAnalyzer,您还可以得到前面的行为。这就是这些版本常量的目的,因此对于现有用户来说,行为保持一致,并且您可以决定何时将应用程序升级到更改的行为。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8644602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档