将CharFilter与Lucene 4.3.0的StandardAnalyzer一起使用

将CharFilter与Lucene 4.3.0的StandardAnalyzer一起使用,第1张

将CharFilter与Lucene 4.3.0的StandardAnalyzer一起使用

目的是让您覆盖

Analyzer
,而不是
StandardAnalyzer
。这种想法是,您永远不应将分析器实现子类化(此处有一些讨论)。但Analyzer的实现非常简单,将一个CharFilter添加到Analyzer中,实现与StandardAnalyzer相同的标记器/过滤器链,如下所示:

public final class MyAnalyzer {    @Override    protected TokenStreamComponents createComponents(String fieldName, Reader reader) {        final StandardTokenizer src = new StandardTokenizer(matchVersion, reader);        TokenStream tok = new StandardFilter(matchVersion, src);        tok = new LowerCaseFilter(matchVersion, tok);        tok = new StopFilter(matchVersion, tok, StopAnalyzer.ENGLISH_STOP_WORDS_SET);        return new TokenStreamComponents(src, tok);    }    @Override    protected Reader initReader(String fieldName, Reader reader) {        //return your CharFilter-wrapped reader here    }}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5507090.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-13
下一篇2022-12-13

发表评论

登录后才能评论

评论列表(0条)

    保存