public class CategoryDocumentBuilder extends Object
CategoryPath
s or
CategoryAttribute
s 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 ordinalsIOException
public 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 parametersIOException
public 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)
.IOException
public 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)
.IOException
protected 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 attributesIOException
protected 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 CategoryAttribute
s 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