首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一个Lucene可以移除所有非字母,并将所有大写转换为小写?

是否有一个Lucene可以移除所有非字母,并将所有大写转换为小写?
EN

Stack Overflow用户
提问于 2013-09-13 02:43:21
回答 1查看 861关注 0票数 2

我正在使用Lucene4.4,我有一个项目要做。在该项目中,所有非字母必须被删除,所有大写字母必须转换为小写字母。我知道有一个用来除去非字母的分析器。

但是,在Lucene中是否有一个分析器,既可以删除所有非字母,又可以将所有大写字母转换成小写字母?

干杯。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-13 05:43:42

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

以下是(几乎)完全相同的事情:

代码语言:javascript
复制
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和一些类似的过滤器来设计您自己的令牌,如文档 LetterTokenizer中所示,令牌定义为相邻字母的最大字符串,LowercaseFilter按照它在tin上说的做。

这是一个相当常见的组合,因此也有LowercaseTokenizer,它在一步内完成LowercaseFilter和LetterTokenizer的工作,从而提供了性能优势。LowercaseTokenizerSimpleAnalyzer实际使用的

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18777445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档