我需要一个可以执行以下操作的 Lucene Tokenizer。给定字符串“wines Bottle caps”,以下查询应该成功
- 酒
- 博特
- 上限
- 奥特尔
- AP
- 酒瓶
这是我到目前为止所拥有的。我该如何修改它才能工作?少于三个字符的查询不应起作用。
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 分析器分词器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30578058/