
目的是让您覆盖
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 }}欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)