package org.elasticsearch.index.analysis; import org.bosonnlp.analyzer.lucene.BosonNLPAnalyzer; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.inject.assistedinject.Assisted; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.env.Environment; import org.elasticsearch.index.Index; import org.elasticsearch.index.settings.IndexSettingsService; public class BosonNLPAnalyzerProvider extends AbstractIndexAnalyzerProvider<BosonNLPAnalyzer> { private final BosonNLPAnalyzer analyzer; private String BOSONNLP_API_TOKEN; private String TAG_URL; private int spaceMode; private int oovLevel; private int t2s; private int specialCharConv; /* * Name to associate with this class. It will be used in BinderProcesser */ public static final String NAME = "bosonnlp"; @Inject public BosonNLPAnalyzerProvider(Index index, IndexSettingsService indexSettingsService, Environment env, @Assisted String name, @Assisted Settings settings) { super(index, indexSettingsService.getSettings(), name, settings); this.TAG_URL = settings.get("API_URL", "").toString(); this.BOSONNLP_API_TOKEN = settings.get("API_TOKEN", "").toString(); this.spaceMode = Integer.parseInt(settings.get("space_mode", "0")); this.oovLevel = Integer.parseInt(settings.get("oov_level", "3")); this.t2s = Integer.parseInt(settings.get("t2s", "0")); this.specialCharConv = Integer.parseInt(settings.get("spechial_char_conv", "0")); this.analyzer = new BosonNLPAnalyzer(TAG_URL, BOSONNLP_API_TOKEN, spaceMode, oovLevel, t2s, specialCharConv); } @Override public BosonNLPAnalyzer get() { return this.analyzer; } }