/ / Lucene Tokenizer deprecato - java, lucene, tokenize, analizzatore

Lucene Tokenizer deprecato - java, lucene, tokenize, analizzatore

La seguente estensione Analyzer ha un numero di sottoclassi deprecate. Quali sono le sostituzioni non deprecate? Per StandardTokenizer, StandardFilter, LowerCaseFilter, e StopFilter - come usato sotto.

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

}

risposte:

0 per risposta № 1

Basta perdere gli argomenti della versione.


Presumo che stai usando la versione 4 di Lucene.10, o qualcosa in quella vicinanza generale. I costruttori con argomenti di versione per tutti questi sono stati deprecati (e rimossi, a partire dalla versione 5.0) e sostituiti con costruttori che non accettano tale argomento.

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