package com.pearson.entech.elasticsearch.plugin.approx; import java.util.Collection; import org.elasticsearch.common.collect.Lists; import org.elasticsearch.common.inject.Module; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.plugins.AbstractPlugin; import org.elasticsearch.search.facet.FacetModule; import com.pearson.entech.elasticsearch.search.facet.approx.date.internal.DateFacetParser; import com.pearson.entech.elasticsearch.search.facet.approx.termlist.InternalTermListFacet; import com.pearson.entech.elasticsearch.search.facet.approx.termlist.TermListFacetParser; /** * Plugin configuration class. */ public class FacetPlugin extends AbstractPlugin { /** * Default constructor (required). * * @param settings any settings for this plugin -- currently none are used */ public FacetPlugin(final Settings settings) {} @Override public String name() { return "approx-plugin"; } @Override public String description() { return "Plugin providing fast term listing, advanced date facets and exact/approximate distinct counts"; } @Override public Collection<Class<? extends Module>> modules() { final Collection<Class<? extends Module>> modules = Lists.newArrayList(); modules.add(DateFacetsModule.class); return modules; } @Override public void processModule(final Module module) { if(module instanceof FacetModule) { ((FacetModule) module).addFacetProcessor(DateFacetParser.class); ((FacetModule) module).addFacetProcessor(TermListFacetParser.class); InternalTermListFacet.registerStreams(); } } }