译自:原文地址
只有一个例子:
public class MyAnalyzer extends Analyzer
{
private static final Analyzer STANDARD = new StandardAnalyzer();
public TokenStream tokenStream(String field, final Reader reader)
{
// do not tokenize field called 'element'
if ("element".equals(field)) {
return new CharTokenizer(reader) {
protected boolean isTokenChar(char c) {
return true;
}
};
} else {
// use standard analyzer
return STANDARD.tokenStream(field, reader);
}
}
}
综上所述,自定义分析器代码中,真实的实现是通过调用自定义的TokenFilter派生类实现的。
如果你希望自定义的分词类似StandardAnalyzer的调用行为,参照那么如下代码:
return new NameFilter(
CaseNumberFilter(
new StopFilter(
new LowerCaseFilter(
new StandardFilter(
new StandardTokenizer(reader)
)
), StopAnalyzer.ENGLISH_STOP_WORDS)
)
);
所属分类:
[lucene]
[Java]
tag:
分析器,
tinyfool发布于2009年12月04日 15:30