【发布时间】:2015-06-01 16:01:07
【问题描述】:
我需要一个可以执行以下操作的 Lucene Tokenizer。给定字符串“wines bottle caps”,下面的查询应该会成功
- 葡萄酒
- 底部
- 上限
- ottl
- aps
- 酒瓶
这是我目前所拥有的。我该如何修改它才能工作?少于三个字符的查询不应该有效。
public class PorterAnalyzer extends Analyzer {
private final Version version;
public PorterAnalyzer(Version version) {
this.version = version;
}
@Override
@SuppressWarnings("resource")
protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
final StandardTokenizer src = new StandardTokenizer(reader);
TokenStream tok = new StandardFilter(src);
tok = new LowerCaseFilter( tok);
tok = new StopFilter( tok, StandardAnalyzer.STOP_WORDS_SET);
tok = new PorterStemFilter(tok);
return new TokenStreamComponents(src, tok);
}
}
【问题讨论】:
标签: java lucene tokenize analyzer