Reputation: 14864
The following Analyzer extension has a number of deprecated sub classes. What are the non-deprecated replacements? For StandardTokenizer
, StandardFilter
, LowerCaseFilter
, and StopFilter
-- as used below.
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);
}
}
Upvotes: 1
Views: 403
Reputation: 33351
Just lose the version arguments.
I assume you are using Lucene version 4.10, or something in that general vicinity. The constructors with version arguments for all of these have been deprecated (and removed, as of version 5.0), and replaced with constructors that do not take that argument.
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);
}
}
Upvotes: 1