Я начинаю работать с 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;
}
}
StandardAnalyzer уже переводит все в нижний регистр!
Проверьте документы здесь: http://lucene.apache.org/core/8_0_0/core/org/apache/lucene/analysis/standard/StandardAnalyzer.html
Они говорят:
Filters StandardTokenizer with LowerCaseFilter and StopFilter, using a configurable list of stop words.
Вы также можете увидеть в исходном коде, какие компоненты включает в себя 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
.