Использование стоп-слов с WhitespaceAnalyzer - PullRequest
3 голосов
/ 08 мая 2009

Lucene's StandardAnalyzer удаляет точки из строк / сокращений при индексации. Я хочу, чтобы Lucene сохранил точки, и поэтому я использую класс WhitespaceAnalyzer.

Я могу передать свой список стоп-слов в StandardAnalyzer ... но как я могу передать его WhitespaceAnalyzer?

Спасибо за чтение.

1 Ответ

6 голосов
/ 08 мая 2009

Создайте свой собственный анализатор, расширив WhiteSpaceAnalyzer и изменив метод tokenStream следующим образом.

public TokenStream tokenStream(String fieldName, Reader reader) {
    TokenStream result = super.tokenStream(fieldName, reader);
    result = new StopFilter(result, stopSet);
    return result;
}

Здесь stopSet - это набор стоп-слов, который вы можете получить, добавив конструктор в ваш анализатор, который принимает список стоп-слов.

Вы также можете переопределить метод reusableTokenStream () аналогичным образом, если планируете повторно использовать TokenStream.

...