|
@@ -44,6 +44,7 @@ import org.apache.lucene.analysis.hu.HungarianLightStemFilter;
|
|
|
import org.apache.lucene.analysis.id.IndonesianStemFilter;
|
|
|
import org.apache.lucene.analysis.it.ItalianLightStemFilter;
|
|
|
import org.apache.lucene.analysis.lv.LatvianStemFilter;
|
|
|
+import org.apache.lucene.analysis.miscellaneous.EmptyTokenStream;
|
|
|
import org.apache.lucene.analysis.no.NorwegianLightStemFilter;
|
|
|
import org.apache.lucene.analysis.no.NorwegianLightStemmer;
|
|
|
import org.apache.lucene.analysis.no.NorwegianMinimalStemFilter;
|
|
@@ -82,13 +83,19 @@ import org.tartarus.snowball.ext.SpanishStemmer;
|
|
|
import org.tartarus.snowball.ext.SwedishStemmer;
|
|
|
import org.tartarus.snowball.ext.TurkishStemmer;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
+
|
|
|
public class StemmerTokenFilterFactory extends AbstractTokenFilterFactory {
|
|
|
|
|
|
+ private static final TokenStream EMPTY_TOKEN_STREAM = new EmptyTokenStream();
|
|
|
+
|
|
|
private String language;
|
|
|
|
|
|
- StemmerTokenFilterFactory(IndexSettings indexSettings, Environment environment, String name, Settings settings) {
|
|
|
+ StemmerTokenFilterFactory(IndexSettings indexSettings, Environment environment, String name, Settings settings) throws IOException {
|
|
|
super(indexSettings, name, settings);
|
|
|
this.language = Strings.capitalize(settings.get("language", settings.get("name", "porter")));
|
|
|
+ // check that we have a valid language by trying to create a TokenStream
|
|
|
+ create(EMPTY_TOKEN_STREAM).close();
|
|
|
}
|
|
|
|
|
|
@Override
|