Как применить LowerCase к строке с помощью Lucene - PullRequest
0 голосов
/ 09 апреля 2019

Я начинаю работать с Apache Lucene 8.0.Я хотел бы знать, как преобразовать мою String text переменную в нижний регистр, используя Lucene.Я не совсем уверен, как это сделать, потому что я не смог найти никаких примеров.То, что я хочу, было бы примерно так:

public class DocumentLowercase {

private Analyzer analyzer; 

public Analyzer DocAnalysis(Document d) {

    analyzer = new StandardAnalyzer();
    String text = d.text();

    **Here convert String Text into lowercase**
    ** maybe using Lower Case Tokenizer? but how? **        

    return analyzer;


}
}

1 Ответ

1 голос
/ 09 апреля 2019

StandardAnalyzer уже преобразует все в нижний регистр!

Проверьте документы здесь: http://lucene.apache.org/core/8_0_0/core/org/apache/lucene/analysis/standard/StandardAnalyzer.html

Они говорят:

Фильтрует StandardTokenizer с помощью LowerCaseFilter и StopFilter, используя настраиваемый список стоп-слов.

Вы также можете увидеть в исходном коде, какие компоненты включает StandardAnalyzer:

  @Override
  protected TokenStreamComponents createComponents(final String fieldName) {
    final StandardTokenizer src = new StandardTokenizer();
    src.setMaxTokenLength(maxTokenLength);
    TokenStream tok = new LowerCaseFilter(src);
    tok = new StopFilter(tok, stopwords);
    return new TokenStreamComponents(r -> {
      src.setMaxTokenLength(StandardAnalyzer.this.maxTokenLength);
      src.setReader(r);
    }, tok);
  }

Если вы все равно хотите настроить свой анализатор, вам следует заглянуть в CustomAnalyzer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...