Java 不推荐使用Lucene标记器
以下Analyzer扩展有许多不推荐使用的子类。哪些是未弃用的替代品?对于Java 不推荐使用Lucene标记器,java,lucene,tokenize,analyzer,Java,Lucene,Tokenize,Analyzer,以下Analyzer扩展有许多不推荐使用的子类。哪些是未弃用的替代品?对于StandardTokenizer、StandardFilter、LowerCaseFilter和StopFilter——如下所示 public class PorterAnalyzer extends Analyzer { private final Version version; public PorterAnalyzer(Version version) { this.version = ver
StandardTokenizer
、StandardFilter
、LowerCaseFilter
和StopFilter
——如下所示
public class PorterAnalyzer extends Analyzer {
private final Version version;
public PorterAnalyzer(Version version) {
this.version = version;
}
@Override
@SuppressWarnings("resource")
protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
final StandardTokenizer src = new StandardTokenizer(version, reader);
TokenStream tok = new StandardFilter(version, src);
tok = new LowerCaseFilter(version, tok);
tok = new StopFilter(version, tok, StandardAnalyzer.STOP_WORDS_SET);
tok = new PorterStemFilter(tok);
return new TokenStreamComponents(src, tok);
}
}
只需丢失版本参数
我假设您使用的是Lucene 4.10版,或者类似的版本。所有这些具有版本参数的构造函数都已被弃用(从5.0版开始删除),并替换为不具有该参数的构造函数
public class PorterAnalyzer extends Analyzer {
@Override
@SuppressWarnings("resource")
protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
final StandardTokenizer src = new StandardTokenizer(reader);
TokenStream tok = new StandardFilter(src);
tok = new LowerCaseFilter(tok);
tok = new StopFilter(tok, StandardAnalyzer.STOP_WORDS_SET);
tok = new PorterStemFilter(tok);
return new TokenStreamComponents(src, tok);
}
}