Package org.apache.lucene.facet.taxonomy
Taxonomy of Categories.
Facets are defined using a hierarchy of categories, known as a Taxonomy. For example, the taxonomy of a book store application might have the following structure:
- Author
- Mark Twain
- J. K. Rowling
- Date
- 2010
- March
- April
- 2009
The Taxonomy translates category-paths into integer identifiers (often termed ordinals) and vice versa.
The category Author/Mark Twain
adds two nodes to the taxonomy: Author
and
Author/Mark Twain
, each is assigned a different ordinal. The taxonomy maintains the invariant that a
node always has an ordinal that is < all its children.
-
Interface Summary Interface Description TaxonomyWriter TaxonomyWriter is the interface which the faceted-search library uses to dynamically build the taxonomy at indexing time. -
Class Summary Class Description AssociationFacetField Add an instance of this to yourDocument
to add a facet label associated with an arbitrary byte[].CachedOrdinalsReader A per-segment cache of documents' facet ordinals.CachedOrdinalsReader.CachedOrds Holds the cached ordinals in two parallelint[]
arrays.DocValuesOrdinalsReader Decodes ordinals previously indexed into a BinaryDocValues fieldFacetLabel Holds a sequence of string components, specifying the hierarchical name of a category.FastTaxonomyFacetCounts Computes facets counts, assuming the default encoding into DocValues was used.FloatAssociationFacetField Add an instance of this to yourDocument
to add a facet label associated with a float.FloatTaxonomyFacets Base class for all taxonomy-based facets that aggregate to a per-ords float[].IntAssociationFacetField Add an instance of this to yourDocument
to add a facet label associated with an int.IntTaxonomyFacets Base class for all taxonomy-based facets that aggregate to a per-ords int[].LRUHashMap<K,V> LRUHashMap is an extension of Java's HashMap, which has a bounded size(); When it reaches that size, each time a new element is added, the least recently used (LRU) entry is removed.OrdinalMappingLeafReader AFilterLeafReader
for updating facets ordinal references, based on an ordinal map.OrdinalsReader Provides per-document ordinals.OrdinalsReader.OrdinalsSegmentReader Returns ordinals for documents in one segment.ParallelTaxonomyArrays Returns 3 arrays for traversing the taxonomy:parents
:parents[i]
denotes the parent of category ordinali
.children
:children[i]
denotes a child of category ordinali
.siblings
:siblings[i]
denotes the sibling of category ordinali
. To traverse the taxonomy tree, you typically start withchildren[0]
(ordinal 0 is reserved for ROOT), and then depends if you want to do DFS or BFS, you callchildren[children[0]]
orsiblings[children[0]]
and so forth, respectively.PrintTaxonomyStats Prints how many ords are under each dimension.SearcherTaxonomyManager Manages near-real-time reopen of both an IndexSearcher and a TaxonomyReader.SearcherTaxonomyManager.SearcherAndTaxonomy Holds a matched pair ofIndexSearcher
andTaxonomyReader
TaxonomyFacetCounts Reads from anyOrdinalsReader
; useFastTaxonomyFacetCounts
if you are using the default encoding fromBinaryDocValues
.TaxonomyFacets Base class for all taxonomy-based facets impls.TaxonomyFacetSumFloatAssociations Aggregates sum of int values previously indexed withFloatAssociationFacetField
, assuming the default encoding.TaxonomyFacetSumIntAssociations Aggregates sum of int values previously indexed withIntAssociationFacetField
, assuming the default encoding.TaxonomyFacetSumValueSource Aggregates sum of values fromDoubleValues.doubleValue()
, for each facet label.TaxonomyMergeUtils Utility methods for merging index and taxonomy directories.TaxonomyReader TaxonomyReader is the read-only interface with which the faceted-search library uses the taxonomy during search time.TaxonomyReader.ChildrenIterator An iterator over a category's children.