package com.tyndalehouse.step.core.data.analyzers; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.LowerCaseFilter; import org.apache.lucene.analysis.LowerCaseTokenizer; import org.apache.lucene.analysis.PorterStemFilter; import org.apache.lucene.analysis.TokenStream; import java.io.Reader; /** * porter stemmer only with lower casing and stop words */ public class PorterStemmerAnalyzer extends Analyzer { /** * Constructs a filter with stop filter, lower case filter and porter stem filter * * @param fieldName the name of the field * @param reader the reader of the input string * @return the token stream, with the appropriate filters */ @Override public final TokenStream tokenStream(final String fieldName, final Reader reader) { TokenStream result = new LowerCaseTokenizer(reader); result = new LowerCaseFilter(result); result = new PorterStemFilter(result); return result; } }