【发布时间】:2011-12-27 12:26:36
【问题描述】:
我最近注意到 Lucene StandardAnalyzer 的行为自 3.1 版以来发生了一些变化。具体来说,3.0 和以前的版本将电子邮件、IP 地址、公司名称等识别为单独的词汇类型,而更高版本则不识别。
例如,对于输入文本:“example@mail.com 127.0.0.1 H&M”,3.0 分析器将识别以下类型:
1: example@mail.com: 0->16: EMAIL>
2: 127.0.0.1: 17->26: 主机>
3: h&m: 27->30: 公司
但是,3.1 及更高版本针对相同的输入文本提供以下输出:
1:示例:0->7:ALPHANUM>
2: mail.com: 8->16: ALPHANUM>
3: 127.0.0.1: 17->26: NUM>
我的问题是,如何使用较新版本的 Lucene 库实现旧的 StandardAnalyzer 行为?是否有一些标准的 TokenFilters 可以帮助我实现这一点,还是我需要实现自定义过滤器?
【问题讨论】: