Class FacetComponent
- java.lang.Object
-
- org.apache.solr.handler.component.SearchComponent
-
- org.apache.solr.handler.component.FacetComponent
-
- All Implemented Interfaces:
AutoCloseable
,SolrInfoBean
,SolrMetricProducer
,NamedListInitializedPlugin
public class FacetComponent extends SearchComponent
Computes facets -- aggregations with counts of terms or ranges over the whole search results.- Since:
- solr 1.3
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
FacetComponent.DistribFieldFacet
This API is experimental and subject to changestatic class
FacetComponent.FacetBase
This API is experimental and subject to changestatic class
FacetComponent.FacetContext
Encapsulates facet ranges and facet queries such that their parameters are parsed and cached for efficient re-use.static class
FacetComponent.FacetInfo
This class is used exclusively for merging results from each shard in a distributed facet request.static class
FacetComponent.FieldFacet
This API is experimental and subject to changestatic class
FacetComponent.QueryFacet
This API is experimental and subject to changestatic class
FacetComponent.ShardFacetCount
This API is experimental and subject to change-
Nested classes/interfaces inherited from interface org.apache.solr.core.SolrInfoBean
SolrInfoBean.Category, SolrInfoBean.Group
-
-
Field Summary
Fields Modifier and Type Field Description static String
COMPONENT_NAME
static String
FACET_COUNTS_KEY
static String
FACET_FIELD_KEY
static String
FACET_INTERVALS_KEY
static String
FACET_QUERY_KEY
static String
FACET_RANGES_KEY
static String[]
FACET_TYPE_PARAMS
-
Fields inherited from class org.apache.solr.handler.component.SearchComponent
solrMetricsContext, standard_components
-
-
Constructor Summary
Constructors Constructor Description FacetComponent()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
distributedProcess(ResponseBuilder rb)
Process for a distributed search.void
finishStage(ResponseBuilder rb)
Called after all responses have been received for this stage.SolrInfoBean.Category
getCategory()
Category of this componentString
getDescription()
Simple one or two line descriptionstatic org.apache.solr.common.util.NamedList<Object>
getFacetCounts(SimpleFacets simpleFacets)
static org.apache.solr.common.util.NamedList<Object>
getFacetCounts(SimpleFacets simpleFacets, FacetDebugInfo fdebug)
Looks at various Params to determining if any simple Facet Constraint count computations are desired.void
handleResponses(ResponseBuilder rb, ShardRequest sreq)
Called after all responses for a single request were receivedvoid
modifyRequest(ResponseBuilder rb, SearchComponent who, ShardRequest sreq)
Called after another component adds a requestprotected SimpleFacets
newSimpleFacets(SolrQueryRequest req, DocSet docSet, org.apache.solr.common.params.SolrParams params, ResponseBuilder rb)
void
prepare(ResponseBuilder rb)
Prepare the response.void
process(ResponseBuilder rb)
Actually run the query-
Methods inherited from class org.apache.solr.handler.component.SearchComponent
getName, getSolrMetricsContext, initializeMetrics, setName
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.solr.util.plugin.NamedListInitializedPlugin
init
-
Methods inherited from interface org.apache.solr.metrics.SolrMetricProducer
close
-
-
-
-
Field Detail
-
COMPONENT_NAME
public static final String COMPONENT_NAME
- See Also:
- Constant Field Values
-
FACET_COUNTS_KEY
public static final String FACET_COUNTS_KEY
- See Also:
- Constant Field Values
-
FACET_QUERY_KEY
public static final String FACET_QUERY_KEY
- See Also:
- Constant Field Values
-
FACET_FIELD_KEY
public static final String FACET_FIELD_KEY
- See Also:
- Constant Field Values
-
FACET_RANGES_KEY
public static final String FACET_RANGES_KEY
- See Also:
- Constant Field Values
-
FACET_INTERVALS_KEY
public static final String FACET_INTERVALS_KEY
- See Also:
- Constant Field Values
-
FACET_TYPE_PARAMS
public static String[] FACET_TYPE_PARAMS
-
-
Method Detail
-
prepare
public void prepare(ResponseBuilder rb) throws IOException
Description copied from class:SearchComponent
Prepare the response. Guaranteed to be called before any SearchComponentSearchComponent.process(org.apache.solr.handler.component.ResponseBuilder)
method. Called for every incoming request.The place to do initialization that is request dependent.
- Specified by:
prepare
in classSearchComponent
- Parameters:
rb
- TheResponseBuilder
- Throws:
IOException
- If there is a low-level I/O error.
-
newSimpleFacets
protected SimpleFacets newSimpleFacets(SolrQueryRequest req, DocSet docSet, org.apache.solr.common.params.SolrParams params, ResponseBuilder rb)
-
process
public void process(ResponseBuilder rb) throws IOException
Actually run the query- Specified by:
process
in classSearchComponent
- Parameters:
rb
- TheResponseBuilder
- Throws:
IOException
- If there is a low-level I/O error.
-
getFacetCounts
public static org.apache.solr.common.util.NamedList<Object> getFacetCounts(SimpleFacets simpleFacets)
-
getFacetCounts
public static org.apache.solr.common.util.NamedList<Object> getFacetCounts(SimpleFacets simpleFacets, FacetDebugInfo fdebug)
Looks at various Params to determining if any simple Facet Constraint count computations are desired.- Returns:
- a NamedList of Facet Count info or null
- See Also:
SimpleFacets.getFacetQueryCounts()
,SimpleFacets.getFacetFieldCounts()
,RangeFacetProcessor.getFacetRangeCounts()
,SimpleFacets.getFacetIntervalCounts()
,FacetParams.FACET
-
distributedProcess
public int distributedProcess(ResponseBuilder rb) throws IOException
Description copied from class:SearchComponent
Process for a distributed search.- Overrides:
distributedProcess
in classSearchComponent
- Returns:
- the next stage for this component
- Throws:
IOException
-
modifyRequest
public void modifyRequest(ResponseBuilder rb, SearchComponent who, ShardRequest sreq)
Description copied from class:SearchComponent
Called after another component adds a request- Overrides:
modifyRequest
in classSearchComponent
-
handleResponses
public void handleResponses(ResponseBuilder rb, ShardRequest sreq)
Description copied from class:SearchComponent
Called after all responses for a single request were received- Overrides:
handleResponses
in classSearchComponent
-
finishStage
public void finishStage(ResponseBuilder rb)
Description copied from class:SearchComponent
Called after all responses have been received for this stage. Useful when different requests are sent to each shard.- Overrides:
finishStage
in classSearchComponent
-
getDescription
public String getDescription()
Description copied from interface:SolrInfoBean
Simple one or two line description- Specified by:
getDescription
in interfaceSolrInfoBean
- Specified by:
getDescription
in classSearchComponent
-
getCategory
public SolrInfoBean.Category getCategory()
Description copied from interface:SolrInfoBean
Category of this component- Specified by:
getCategory
in interfaceSolrInfoBean
- Overrides:
getCategory
in classSearchComponent
-
-