如何在 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

10-07 13:41