Enhanced category features
Mechanisms for addition of enhanced category features.
A {@link org.apache.lucene.facet.enhancements.CategoryEnhancement CategoryEnhancement}
(which can correspond to a
{@link org.apache.lucene.facet.index.attributes.CategoryProperty CategoryProperty})
can contribute to the index in two possible ways:
- To each category with data relevant to the enhancement,
add this data to the category's token payload, through
{@link org.apache.lucene.facet.enhancements.CategoryEnhancement#getCategoryTokenBytes(CategoryAttribute) CategoryEnhancement.getCategoryTokenBytes()}.
This data will be read during search using
{@link org.apache.lucene.facet.enhancements.CategoryEnhancement#extractCategoryTokenData(byte[], int, int) CategoryEnhancement.extractCategoryTokenData()}.
- To each document which contains categories with data relevant to the enhancement, add a
{@link org.apache.lucene.facet.index.streaming.CategoryListTokenizer CategoryListTokenizer} through
{@link org.apache.lucene.facet.enhancements.CategoryEnhancement#getCategoryListTokenizer CategoryEnhancement.getCategoryListTokenizer()} .
The
{@link org.apache.lucene.facet.index.streaming.CategoryListTokenizer 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
{@link org.apache.lucene.facet.enhancements.CategoryEnhancement#getCategoryListTermText() CategoryEnhancement.getCategoryListTermText()}.