package org.elasticsearch.index.analysis; import org.apache.lucene.analysis.Tokenizer; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.IndexSettings; import org.wltea.analyzer.cfg.Configuration; import org.wltea.analyzer.lucene.IKTokenizer; public class IkTokenizerFactory extends AbstractTokenizerFactory { private Configuration configuration; public IkTokenizerFactory(IndexSettings indexSettings, Environment env, String name, Settings settings) { super(indexSettings, name, settings); configuration=new Configuration(env,settings); } public static IkTokenizerFactory getIkTokenizerFactory(IndexSettings indexSettings, Environment env, String name, Settings settings) { return new IkTokenizerFactory(indexSettings,env, name, settings).setSmart(false); } public static IkTokenizerFactory getIkSmartTokenizerFactory(IndexSettings indexSettings, Environment env, String name, Settings settings) { return new IkTokenizerFactory(indexSettings,env, name, settings).setSmart(true); } public IkTokenizerFactory setSmart(boolean smart){ this.configuration.setUseSmart(smart); return this; } @Override public Tokenizer create() { return new IKTokenizer(configuration); } }