【问题标题】:Lucene Tokenizer deprecatedLucene Tokenizer 已弃用
【发布时间】:2015-05-28 04:49:26
【问题描述】:

以下分析器扩展有许多已弃用的子类。什么是不弃用的替代品?对于 StandardTokenizerStandardFilterLowerCaseFilterStopFilter -- 如下所示。

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);
  }

}

【问题讨论】:

    标签: java lucene tokenize analyzer


    【解决方案1】:

    只是丢失版本参数。


    我假设您使用的是 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);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 2012-05-23
      • 1970-01-01
      • 2016-03-03
      相关资源
      最近更新 更多