我想构建自己的同时使用过滤器/标记器的分析器。

我的意思是,相同的字段是关键字(整个流作为单个 token )和小写字母

如果仅使用KeywordAnalyzer,则field的值不区分大小写。
如果我使用LowerCaseTokenizerLowerCaseFilter,则必须将它们与其他执行相同功能的分析器合并在一起KeywordAnalyzer(不带字母,空格,删除停用词等)

问题是:是否可以使用过滤器或分析器Lucene或tokenizers将该字段设置为Keyword(整个流作为单个 token ),并将其转换为小写字母?

(谷歌翻译,对错误表示抱歉)

最佳答案

这应该工作:

public final class YourAnalyzer extends ReusableAnalyzerBase {

  @Override
  protected TokenStreamComponents createComponents(final String fieldName, final Reader reader) {
    final TokenStream source = new KeywordTokenizer(reader);
    return new TokenStreamComponents(source, new LowercaseFilter(Version.LUCENE_36, source));
  }
}

关于java - 关键字分析器和LowerCaseFilter/LowerCaseTokenizer,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11782783/

10-11 03:35