我想构建自己的同时使用过滤器/标记器的分析器。
我的意思是,相同的字段是关键字(整个流作为单个 token )和小写字母
如果仅使用KeywordAnalyzer,则field的值不区分大小写。
如果我使用LowerCaseTokenizer或LowerCaseFilter,则必须将它们与其他执行相同功能的分析器合并在一起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/