public class CategoryDocumentBuilder extends Object
CategoryPaths or
CategoryAttributes to a given document using a taxonomy.FacetIndexingParams or
the default implementation DefaultFacetIndexingParams.CategoryAttribute elements through setCategories(Iterable),
or as CategoryPath elements through
setCategoryPaths(Iterable).
Note that both setCategories(Iterable) and
setCategoryPaths(Iterable) return this
CategoryDocumentBuilder, allowing the following pattern: new
CategoryDocumentBuilder(taxonomy,
params).setCategories(categories).build(doc).
| Modifier and Type | Field and Description |
|---|---|
protected Map<String,List<CategoryAttribute>> |
categoriesMap |
protected ArrayList<Field> |
fieldList
A list of fields which is filled at ancestors' construction and used
during
build(Document). |
protected FacetIndexingParams |
indexingParams
Parameters to be used when indexing categories.
|
protected TaxonomyWriter |
taxonomyWriter
A
TaxonomyWriter for adding categories and retrieving their
ordinals. |
| Constructor and Description |
|---|
CategoryDocumentBuilder(TaxonomyWriter taxonomyWriter)
Creating a facets document builder with default facet indexing
parameters.
|
CategoryDocumentBuilder(TaxonomyWriter taxonomyWriter,
FacetIndexingParams params)
Creating a facets document builder with a given facet indexing parameters
object.
|
| Modifier and Type | Method and Description |
|---|---|
Document |
build(Document doc)
Adds the fields created in one of the "set" methods to the document
|
protected void |
fillCategoriesMap(Iterable<CategoryAttribute> categories)
Fills the categories mapping between a field name and a list of
categories that belongs to it according to this builder's
FacetIndexingParams object |
protected CategoryListTokenizer |
getCategoryListTokenizer(TokenStream categoryStream)
Get a category list tokenizer (or a series of such tokenizers) to create
the category list tokens.
|
protected CategoryTokenizer |
getCategoryTokenizer(TokenStream categoryStream)
Get a
CategoryTokenizer to create the category tokens. |
protected CountingListTokenizer |
getCountingListTokenizer(TokenStream categoryStream)
Get a
CountingListTokenizer for creating counting list token. |
protected TokenStream |
getParentsStream(CategoryAttributesStream categoryAttributesStream)
Get a stream of categories which includes the parents, according to
policies defined in indexing parameters.
|
CategoryDocumentBuilder |
setCategories(Iterable<CategoryAttribute> categories)
Set the categories of the document builder from an
Iterable of
CategoryAttribute objects. |
CategoryDocumentBuilder |
setCategoryPaths(Iterable<CategoryPath> categoryPaths)
Set the categories of the document builder from an
Iterable of
CategoryPath objects. |
protected final TaxonomyWriter taxonomyWriter
TaxonomyWriter for adding categories and retrieving their
ordinals.protected final FacetIndexingParams indexingParams
protected final ArrayList<Field> fieldList
build(Document).protected Map<String,List<CategoryAttribute>> categoriesMap
public CategoryDocumentBuilder(TaxonomyWriter taxonomyWriter) throws IOException
CategoryDocumentBuilder(TaxonomyWriter, FacetIndexingParams)taxonomyWriter - to which new categories will be added, as well as translating
known categories to ordinalsIOExceptionpublic CategoryDocumentBuilder(TaxonomyWriter taxonomyWriter, FacetIndexingParams params) throws IOException
taxonomyWriter - to which new categories will be added, as well as translating
known categories to ordinalsparams - holds all parameters the indexing process should use such as
category-list parametersIOExceptionpublic CategoryDocumentBuilder setCategoryPaths(Iterable<CategoryPath> categoryPaths) throws IOException
Iterable of
CategoryPath objects.categoryPaths - An iterable of CategoryPath objects which holds the categories
(facets) which will be added to the document at
build(Document)new CategoryDocumentBuilder(TaxonomyWriter).
setCategoryPaths(Iterable).build(Document).IOExceptionpublic CategoryDocumentBuilder setCategories(Iterable<CategoryAttribute> categories) throws IOException
Iterable of
CategoryAttribute objects.categories - An iterable of CategoryAttribute objects which holds
the categories (facets) which will be added to the document at
build(Document)new CategoryDocumentBuilder(TaxonomyWriter).
setCategories(Iterable).build(Document).IOExceptionprotected TokenStream getParentsStream(CategoryAttributesStream categoryAttributesStream)
categoryAttributesStream - The input streamOrdinalPolicy (for policy of adding category tokens for parents),
PathPolicy (for policy of adding category list tokens for parents)protected void fillCategoriesMap(Iterable<CategoryAttribute> categories) throws IOException
FacetIndexingParams objectcategories - Iterable over the category attributesIOExceptionprotected CategoryListTokenizer getCategoryListTokenizer(TokenStream categoryStream)
categoryStream - A stream containing CategoryAttribute with the
relevant data.protected CountingListTokenizer getCountingListTokenizer(TokenStream categoryStream)
CountingListTokenizer for creating counting list token.categoryStream - A stream containing CategoryAttributes with the
relevant data.protected CategoryTokenizer getCategoryTokenizer(TokenStream categoryStream) throws IOException
CategoryTokenizer to create the category tokens.
This method can be overridden for adding more attributes to the category
tokens.categoryStream - A stream containing CategoryAttribute with the
relevant data.CategoryTokenizer to be used in creating category
tokens.IOException