package com.code972.elasticsearch.plugins.index.analysis; import com.code972.hebmorph.datastructures.DictHebMorph; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.hebrew.TokenFilters.HebrewLemmatizerTokenFilter; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; import org.elasticsearch.index.analysis.AbstractTokenFilterFactory; public class HebrewLemmatizerTokenFilterFactory extends AbstractTokenFilterFactory { private final boolean lemmatizeExact; private final DictHebMorph dict; @Inject public HebrewLemmatizerTokenFilterFactory(IndexSettings indexSettings, Environment env, String name, Settings settings, final DictHebMorph dict) { super(indexSettings, name, settings); this.dict = dict; lemmatizeExact = settings.getAsBoolean("lemmatize_exact",false); } @Override public TokenStream create(TokenStream tokenStream) { return new HebrewLemmatizerTokenFilter(tokenStream, dict, lemmatizeExact, lemmatizeExact); } }