Katedral Pillon
Katedral Pillon

Reputation: 14864

Lucene Tokenizer deprecated

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

Answers (1)

femtoRgon
femtoRgon

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

Related Questions