Lucene StandardAnalyzer 3.5类型属性
我最近注意到Lucene StandardAnalyzer的行为在3.1版之后有所改变。具体来说,3.0和以前的版本将电子邮件、IP地址、公司名称等识别为单独的词汇类型,而以后的版本则不识别 例如,对于输入文本:“example@mail.com127.0.0.1 H&M“,3.0分析仪将识别以下类型: 1:example@mail.com:0->16: 2:127.0.0.1:17->26: 3:h&m:27->30: 但是,版本3.1和更高版本为相同的输入文本提供以下输出: 1:示例:0->7: 2:mail.com:8->16: 3:127.0.0.1:17->26:Lucene StandardAnalyzer 3.5类型属性,lucene,analyzer,Lucene,Analyzer,我最近注意到Lucene StandardAnalyzer的行为在3.1版之后有所改变。具体来说,3.0和以前的版本将电子邮件、IP地址、公司名称等识别为单独的词汇类型,而以后的版本则不识别 例如,对于输入文本:“example@mail.com127.0.0.1 H&M“,3.0分析仪将识别以下类型: 1:example@mail.com:0->16: 2:127.0.0.1:17->26: 3:h&m:27->30: 但是,版本3.1和更高版本为相同的输入文本提供以下输出: 1:示例:0->
我的问题是,如何在更新版本的Lucene库中实现旧的StandardAnalyzer行为?是否有一些标准的令牌过滤器可以帮助我实现这一点,或者我需要实现自定义过滤器?请参阅javadocs for StandardAnalyzer:从3.1开始,StandardTokenizer实现Unicode文本分段。。。。ClassicTokenizer和ClassCanalyzer是StandardTokenizer和StandardAnalyzer的3.1版本之前的实现 或者,您可以将LUCENE_30版本传递给StandardAnalyzer,也可以获得之前的行为。这就是这些版本常量的目的,以便现有用户的行为保持一致,并且您可以决定何时将应用升级到已更改的行为