Package org.apache.lucene.facet.search
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:
Facets Request
defines requirements:- which facets are required, e.g. depth
- what is computed for each facet - e.g. count, score.
Facets Extractor
Controls how facets are extracted, with variations of:- default (partitioned, like all extractors).
- sampled - inspects only a fraction of the documents.
Facet Results Handler
Controls how results are further processed and merged (also between partitions):- Top K.
- Tree.
- Tree with top K at each level
- ...
-
Interface Summary Interface Description 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 TScoredDocIDs Document IDs with scores for each, driving facets accumulation.ScoredDocIDsIterator Iterator over document IDs and their scores. -
Class Summary Class Description 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 ACollector
which stores all docIDs and their scores in aScoredDocIDs
instance.StandardFacetsAccumulator Standard implementation forFacetsAccumulator
, 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 GeneratesFacetResult
from the count arrays aggregated for a particularFacetRequest
.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 forTotalFacetCounts
per index, taxonomy, and facet indexing params.