## Package org.apache.lucene.facet.search

Faceted Search API

See:
Description

Interface Summary
CategoryListIterator: An interface for iterating over a "category list", i.e., the list of categories per document.
Heap<T>: Declares an interface for heap (and heap alike) structures, handling a given type T
ScoredDocIDs: Document IDs with scores for each, driving facets accumulation.
ScoredDocIDsIterator: Iterator over document IDs and their scores.

Class Summary
AdaptiveFacetsAccumulator: `FacetsAccumulator` whose behavior regarding complements, sampling, etc.
DrillDown: Creation of drill down term or query.
FacetArrays: Provider of arrays used for facet operations such as counting.
FacetResultsHandler: Handler for facet results.
FacetsAccumulator: Driver for Accumulating facets of faceted search requests over given documents.
FacetsCollector: Collector for facet accumulation.
FloatArrayAllocator: An FloatArrayAllocator is an object which manages float array objects of a certain size.
IntArrayAllocator: An IntArrayAllocator is an object which manages counter array objects of a certain length.
PayloadIntDecodingIterator: A payload deserializer comes with its own working space (buffer).
PayloadIterator: A utility class for iterating through a posting list of a given term and retrieving the payload of the first occurrence in every document.
SamplingWrapper: Wrap any Facets Accumulator with sampling.
ScoredDocIdCollector: A `Collector` which stores all docIDs and their scores in a `ScoredDocIDs` instance.
StandardFacetsAccumulator: Standard implementation for `FacetsAccumulator`, utilizing partitions to save on memory.
TemporaryObjectAllocator<T>: An TemporaryObjectAllocator is an object which manages large, reusable, temporary objects needed during multiple concurrent computations.
TopKFacetResultsHandler: Generate Top-K results for a particular FacetRequest.
TopKInEachNodeHandler: Generates `FacetResult` from the count arrays aggregated for a particular `FacetRequest`.
TopKInEachNodeHandler.IntermediateFacetResultWithHash: Intermediate result to hold counts from one or more partitions processed thus far.
TotalFacetCounts: Maintain Total Facet Counts per partition, for given parameters: Index reader of an index Taxonomy index reader Facet indexing params (and particularly the category list params) The total facet counts are maintained as an array of arrays of integers, where a separate array is kept for each partition.
TotalFacetCountsCache: Manage an LRU cache for `TotalFacetCounts` per index, taxonomy, and facet indexing params.

## Package org.apache.lucene.facet.search Description

# Faceted Search API

API for faceted search has several interfaces - simple, top level ones, adequate for most users, and advanced, more complicated ones, for the more advanced users.

We now describe the simpler interfaces. There are mainly 3 interfaces for faceted search:

1. `Facets Request` defines requirements:
   - which facets are required, e.g. depth
   - what is computed for each facet - e.g. count, score.
2. `Facets Extractor` Controls how facets are extracted, with variations of:
   - default (partitioned, like all extractors).
   - sampled - inspects only a fraction of the documents.
3. `Facet Results Handler` Controls how results are further processed and merged (also between partitions):
   - Top K.
   - Tree.
   - Tree with top K at each level
   - ...