package org.elasticsearch.index.analysis; 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.IKAnalyzer; public class IkAnalyzerProvider extends AbstractIndexAnalyzerProvider<IKAnalyzer> { private final IKAnalyzer analyzer; public IkAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings,boolean useSmart) { super(indexSettings, name, settings); Configuration configuration=new Configuration(env,settings).setUseSmart(useSmart); analyzer=new IKAnalyzer(configuration); } public static IkAnalyzerProvider getIkSmartAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { return new IkAnalyzerProvider(indexSettings,env,name,settings,true); } public static IkAnalyzerProvider getIkAnalyzerProvider(IndexSettings indexSettings, Environment env, String name, Settings settings) { return new IkAnalyzerProvider(indexSettings,env,name,settings,false); } @Override public IKAnalyzer get() { return this.analyzer; } }