Мне нужна помощь с реализацией пользовательского анализатора в Lucene. По некоторым причинам мне нужно использовать эту версию Lucene, и я не могу использовать последнюю версию. Мне нужен анализатор, который использует фильтр нижнего регистра и стоп-фильтр для итальянских и английских стоп-слов.
Я пытался использовать различные подходы, найденные в Интернете, такие как StopFilterFactory, но у меня есть некоторые трудности в реализации
Это то, что мне нужно сделать (в последних версиях Lucene)
public class MyAnalyzer extends Analyzer {
Version matchVersion = Version.LATEST;
@Override
protected TokenStreamComponents createComponents(String fieldName) {
ArrayList stops = new ArrayList(EnglishAnalyzer.getDefaultStopSet());
ArrayList itaStops = new ArrayList(ItalianAnalyzer.getDefaultStopSet());
stops.addAll(itaStops);
CharArraySet sw = StopFilter.makeStopSet(stops);
Tokenizer source = new StandardTokenizer();
TokenStream filter = new LowerCaseFilter(source);
filter = new StopFilter(filter, sw);
filter = new PorterStemFilter(filter);
return new TokenStreamComponents(source, filter);
}
}
Мне нужны некоторые советы о реализации того же анализатора в Lucene 5.0
Ошибки, которые яget связаны с CharArraySet, StopFilter, LowerCaseFilter и PorterStemFilter. Эти классы не реализованы в той версии lucene, которая мне нужна. Спасибо