Package org.leskes.elasticfacets

Source Code of org.leskes.elasticfacets.ElasticFacetsPlugin

package org.leskes.elasticfacets;

import org.elasticsearch.action.ActionModule;
import org.elasticsearch.common.inject.Binder;
import org.elasticsearch.common.inject.Module;
import org.elasticsearch.common.logging.ESLogger;
import org.elasticsearch.common.logging.Loggers;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.plugins.AbstractPlugin;
import org.elasticsearch.rest.RestModule;
import org.elasticsearch.search.facet.FacetModule;
import org.leskes.elasticfacets.cache.CacheStatsPerFieldAction;
import org.leskes.elasticfacets.cache.RestCacheStatsPerFieldAction;
import org.leskes.elasticfacets.cache.TransportCacheStatsPerFieldAction;
import org.leskes.elasticfacets.fields.HashedStringFieldSettings;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;


public class ElasticFacetsPlugin extends AbstractPlugin  {
 
  final static ESLogger logger = Loggers.getLogger(ElasticFacetsPlugin.class);

  public ElasticFacetsPlugin() {
    logger.info("ElasticFacets plugin initialized");
    }

  public String name() {
    return "ElasticFacetsPlugin";
  }

   @Override
   public Collection<Module> shardModules(Settings settings) {
      List<Module> ret = new ArrayList<Module>();
      ret.add(new Module() {
         @Override
         public void configure(Binder binder) {
            binder.bind(HashedStringFieldSettings.class).asEagerSingleton();
         }
      });
      return ret;
   }

   public String description() {
    return "A plugin adding the Faceted Date Histogram facet type.";
  }

   @Override
    public void processModule(Module module) {
    if (module instanceof FacetModule) {
        ((FacetModule)module).addFacetProcessor(FacetedDateHistogramFacetProcessor.class);
        ((FacetModule)module).addFacetProcessor(HashedStringsFacetProcessor.class);
    }
        if (module instanceof ActionModule) {
            ((ActionModule)module).registerAction(CacheStatsPerFieldAction.INSTANCE, TransportCacheStatsPerFieldAction.class);
        }
        if (module instanceof RestModule) {
            ((RestModule)module).addRestAction(RestCacheStatsPerFieldAction.class);
        }
    }


}
TOP

Related Classes of org.leskes.elasticfacets.ElasticFacetsPlugin

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.