次のAnalyzerエクステンションには、廃止予定のサブクラスがいくつかあります。非推奨の代替品は何ですか?にとって 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);
}
}
回答:
回答№1は0バージョン引数を失うだけです。
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);
}
}