如何在 Lucene 3.6.2 中使用 Porter Stemmber 类?
这是我所拥有的:
import org.apache.lucene.analysis.PorterStemmer;
...
PorterStemmer stemmer = new PorterStemmer();
term = stemmer.stem(term);
有人告诉我:PorterStemmer 在 org.apache.lucene.analysis 中不是公开的;无法从外部包访问。
编辑:我还广泛阅读了有关使用 Snowball 的信息,但不鼓励这样做。在 Java 中使用 Lucene 的正确方法是什么?
最佳答案
1) 如果您想使用 PorterStemmer 作为 Lucene token 分析过程的一部分,请使用
PorterStemFilter
示例代码
class MyAnalyzer extends Analyzer {
public final TokenStream tokenStream(String fieldName, Reader reader) {
return new PorterStemFilter(new LowerCaseTokenizer(reader));
}
}
2) 如果您只想将 PorterStemmer 用于任何其他应用程序,这里是作者本人的源代码:PorterStemmer in Java