Lucene Porter Stemmer not public

前端 未结 2 831
夕颜
夕颜 2020-12-19 15:23

How to use the Porter Stemmber class in Lucene 3.6.2? Here is what I have:

import org.apache.lucene.analysis.PorterStemmer;
...
PorterStemmer stemmer = new          


        
2条回答
  •  粉色の甜心
    2020-12-19 15:56

    In Lucene later version, PorterStemmer no longer public. So

     class MyAnalyzer extends Analyzer {
       public final TokenStream tokenStream(String fieldName, Reader reader) {
        return new PorterStemFilter(new LowerCaseTokenizer(reader));
       }
       }
    

    Or you can use SnowballAnalyzer Stemmer.link (SnowballAnalyzer is deprecated)

    import org.tartarus.snowball.ext.PorterStemmer;
    .
    .
    public static  String applyPorterStemmer(String input) throws IOException {
    
            PorterStemmer stemmer = new PorterStemmer();
            stemmer.setCurrent(input);
            stemmer.stem();
            return stemmer.getCurrent();
        }
    

提交回复
热议问题