# Package org.apache.lucene.facet.taxonomy

Taxonomy of Categories.

See: Description

- 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 your `Document` 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 parallel `int[]` arrays.
  DocValuesOrdinalsReader | Decodes ordinals previously indexed into a BinaryDocValues field
  FacetLabel | 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 your `Document` 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 your `Document` 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 | A `FilterLeafReader` 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 ordinal `i`. `children`: `children[i]` denotes a child of category ordinal `i`. `siblings`: `siblings[i]` denotes the sibling of category ordinal `i`. To traverse the taxonomy tree, you typically start with `children[0]` (ordinal 0 is reserved for ROOT), and then depends if you want to do DFS or BFS, you call `children[children[0]]` or `siblings[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 of `IndexSearcher` and `TaxonomyReader`
  TaxonomyFacetCounts | Reads from any `OrdinalsReader`; use `FastTaxonomyFacetCounts` if you are using the default encoding from `BinaryDocValues`.
  TaxonomyFacetLabels | Utility class to easily retrieve previously indexed facet labels, allowing you to skip also adding stored fields for these values, reducing your index size.
  TaxonomyFacets | Base class for all taxonomy-based facets impls.
  TaxonomyFacetSumFloatAssociations | Aggregates sum of int values previously indexed with `FloatAssociationFacetField`, assuming the default encoding.
  TaxonomyFacetSumIntAssociations | Aggregates sum of int values previously indexed with `IntAssociationFacetField`, assuming the default encoding.
  TaxonomyFacetSumValueSource | Aggregates sum of values from `DoubleValues.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.

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

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.

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