是否有Lucene Analyzer删除所有非字母并将所有大写转换为小写?

时间:2013-09-13 02:43:22

标签: java lucene indexing information-retrieval analyzer

我正在使用Lucene 4.4,我有一个项目要做。在该项目中,必须删除所有非字母,并且必须将所有大写字母转换为小写字母。 我知道有一个用于删除非字母的分析器。

但Lucene中是否有一个分析器可以删除所有非字母并将所有大写字母转换为小写字母?

干杯。

1 个答案:

答案 0 :(得分:3)

实际上,是的,有一个分析仪可以做到这一点。 SimpleAnalyzer


以下几乎完全相同:

Analyzer analyzer = new Analyzer() {
 @Override
  protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
    Tokenizer source = new LetterTokenizer(Version.LUCENE_44, reader);
    TokenStream filter = new LowercaseFilter(Version.LUCENE_44, source);
    return new TokenStreamComponents(source, filter);
  }
};

当您对分析器有非常具体的要求时,通常需要通过链接Tokenizer和一些像这样的过滤器来设计自己的,并如Analyzer documentation所示 LetterTokenizer将令牌定义为相邻字母的最大字​​符串,LowercaseFilter执行它在锡上所说的内容。

这是一个相当常见的组合,因此还有LowercaseTokenizer一步完成LowercaseFilter和LetterTokenizer的工作,从而提供了性能优势。 LowercaseTokenizer

实际使用的是SimpleAnalyzer