Я пытаюсь создать собственный анализатор в Lucene 8.3.0, который использует stemming и фильтрует заданный текст, используя пользовательские стоп-слова из файла. Чтобы быть более понятным, я не хочу использовать фильтр стоп-слов по умолчанию и добавлять к нему некоторые слова, я хочу фильтровать, используя только набор стоп-слов из файла stopWords.txt. Как я могу это сделать?
Это то, что я написал до сих пор, но я не уверен, правильно ли это
public class MyAnalyzer extends Analyzer{
//public class MyAnalyzer extends Analyzer {
@Override
protected TokenStreamComponents createComponents(String fieldName) {
// public TokenStream tokenStream(String fieldName, Reader reader) {
Tokenizer tokenizer = new StandardTokenizer();
TokenStream tokenStream = new StandardFilter(tokenizer);
tokenStream = new LowerCaseFilter(tokenStream);
tokenStream = new StopFilter(tokenStream,StopAnalyzer.ENGLISH_STOP_WORDS_SET);
//Adding Porter Stemming filtering
tokenStream = new PorterStemFilter(tokenStream);
//return tokenStream;
return new TokenStreamComponents(tokenizer, tokenStream);
}
}
Прежде всего, я не уверен, правильная ли структура, и пока используя StopFilter из StopAnalyzer просто для проверки (однако он не работает)