org.apache.lucene.facet.search
Class MultiFacetsAggregator

java.lang.Object
  extended by org.apache.lucene.facet.search.MultiFacetsAggregator
All Implemented Interfaces:
FacetsAggregator

public class MultiFacetsAggregator
extends Object
implements FacetsAggregator

A FacetsAggregator which chains multiple aggregators for aggregating the association values of categories that belong to the same category list. While nothing prevents you from chaining general purpose aggregators, it is only useful for aggregating association values, as each association type is written in its own list.

WARNING: This API is experimental and might change in incompatible ways in the next release.

Constructor Summary
MultiFacetsAggregator(Map<CategoryPath,FacetsAggregator> aggregators)
          Constructor.
 
Method Summary
 void aggregate(FacetsCollector.MatchingDocs matchingDocs, CategoryListParams clp, FacetArrays facetArrays)
          Aggregate the facets found in the given matching documents.
 OrdinalValueResolver createOrdinalValueResolver(FacetRequest facetRequest, FacetArrays arrays)
          Creates the appropriate OrdinalValueResolver for this aggregator and the given FacetRequest.
 boolean requiresDocScores()
          Returns true if this aggregator requires document scores.
 void rollupValues(FacetRequest fr, int ordinal, int[] children, int[] siblings, FacetArrays facetArrays)
          Rollup the values of the given ordinal.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MultiFacetsAggregator

public MultiFacetsAggregator(Map<CategoryPath,FacetsAggregator> aggregators)
Constructor.

The mapping is used to rollup the values of the specific category by the corresponding FacetsAggregator. It is ok to pass differnet FacetsAggregator instances for each CategoryPath - the constructor ensures that each aggregator type (determined by its class) is invoked only once.

Method Detail

aggregate

public void aggregate(FacetsCollector.MatchingDocs matchingDocs,
                      CategoryListParams clp,
                      FacetArrays facetArrays)
               throws IOException
Description copied from interface: FacetsAggregator
Aggregate the facets found in the given matching documents.

Specified by:
aggregate in interface FacetsAggregator
Throws:
IOException

rollupValues

public void rollupValues(FacetRequest fr,
                         int ordinal,
                         int[] children,
                         int[] siblings,
                         FacetArrays facetArrays)
Description copied from interface: FacetsAggregator
Rollup the values of the given ordinal. This method is called when a category was indexed with CategoryListParams.OrdinalPolicy.NO_PARENTS. The given ordinal is the requested category, and you should use the children and siblings arrays to traverse its sub-tree.

Specified by:
rollupValues in interface FacetsAggregator

requiresDocScores

public boolean requiresDocScores()
Description copied from interface: FacetsAggregator
Returns true if this aggregator requires document scores.

Specified by:
requiresDocScores in interface FacetsAggregator

createOrdinalValueResolver

public OrdinalValueResolver createOrdinalValueResolver(FacetRequest facetRequest,
                                                       FacetArrays arrays)
Description copied from interface: FacetsAggregator
Creates the appropriate OrdinalValueResolver for this aggregator and the given FacetRequest. The request is passed so that compound aggregators can return the correct OrdinalValueResolver.

Specified by:
createOrdinalValueResolver in interface FacetsAggregator


Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.