## Package org.apache.lucene.facet.enhancements

Enhanced category features

See:
Description

Interface Summary
CategoryEnhancement: This interface allows easy addition of enhanced category features.

Class Summary
EnhancementsCategoryTokenizer: A tokenizer which adds to each category token payload according to the `CategoryEnhancement`s defined in the given `EnhancementsIndexingParams`.
EnhancementsDocumentBuilder: An `EnhancementsDocumentBuilder` is a `CategoryDocumentBuilder` which adds categories to documents according to the list of `CategoryEnhancement`s from `EnhancementsIndexingParams`.
EnhancementsPayloadIterator: A `PayloadIterator` for iterating over category posting lists generated using `EnhancementsCategoryTokenizer`.

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

# Enhanced category features

Mechanisms for addition of enhanced category features.

A `CategoryEnhancement` (which can correspond to a `CategoryProperty`) can contribute to the index in two possible ways:

1. To each category with data relevant to the enhancement, add this data to the category's token payload, through `CategoryEnhancement.getCategoryTokenBytes()`. This data will be read during search using `CategoryEnhancement.extractCategoryTokenData()`.
2. To each document which contains categories with data relevant to the enhancement, add a `CategoryListTokenizer` through `CategoryEnhancement.getCategoryListTokenizer()` . The `CategoryListTokenizer` should add a single token which includes all the enhancement relevant data from the categories. The category list token's text is defined by `CategoryEnhancement.getCategoryListTermText()`.