org.apache.lucene.facet.index
Class FacetFields

java.lang.Object
  extended by org.apache.lucene.facet.index.FacetFields
Direct Known Subclasses:
AssociationsFacetFields

public class FacetFields
extends Object

A utility class for adding facet fields to a document. Usually one field will be added for all facets, however per the FacetIndexingParams.getCategoryListParams(CategoryPath), one field may be added for every group of facets.

WARNING: This API is experimental and might change in incompatible ways in the next release.

Field Summary
protected  FacetIndexingParams indexingParams
           
protected  TaxonomyWriter taxonomyWriter
           
 
Constructor Summary
FacetFields(TaxonomyWriter taxonomyWriter)
          Constructs a new instance with the default facet indexing params.
FacetFields(TaxonomyWriter taxonomyWriter, FacetIndexingParams params)
          Constructs a new instance with the given facet indexing params.
 
Method Summary
protected  void addCountingListData(Document doc, Map<String,BytesRef> categoriesData, String field)
          Add the counting list data to the document under the given field.
 void addFields(Document doc, Iterable<CategoryPath> categories)
          Adds the needed facet fields to the document.
protected  Map<CategoryListParams,Iterable<CategoryPath>> createCategoryListMapping(Iterable<CategoryPath> categories)
          Creates a mapping between a CategoryListParams and all categories that are associated with it.
protected  FieldType drillDownFieldType()
          Returns the FieldType with which the drill-down terms should be indexed.
protected  Map<String,BytesRef> getCategoryListData(CategoryListParams categoryListParams, IntsRef ordinals, Iterable<CategoryPath> categories)
          Returns the category list data, as a mapping from key to BytesRef which includes the encoded data.
protected  DrillDownStream getDrillDownStream(Iterable<CategoryPath> categories)
          Returns a DrillDownStream for writing the categories drill-down terms.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

taxonomyWriter

protected final TaxonomyWriter taxonomyWriter

indexingParams

protected final FacetIndexingParams indexingParams
Constructor Detail

FacetFields

public FacetFields(TaxonomyWriter taxonomyWriter)
Constructs a new instance with the default facet indexing params.

Parameters:
taxonomyWriter - used to resolve given categories to ordinals

FacetFields

public FacetFields(TaxonomyWriter taxonomyWriter,
                   FacetIndexingParams params)
Constructs a new instance with the given facet indexing params.

Parameters:
taxonomyWriter - used to resolve given categories to ordinals
params - determines under which fields the categories should be indexed
Method Detail

createCategoryListMapping

protected Map<CategoryListParams,Iterable<CategoryPath>> createCategoryListMapping(Iterable<CategoryPath> categories)
Creates a mapping between a CategoryListParams and all categories that are associated with it.


getCategoryListData

protected Map<String,BytesRef> getCategoryListData(CategoryListParams categoryListParams,
                                                   IntsRef ordinals,
                                                   Iterable<CategoryPath> categories)
                                            throws IOException
Returns the category list data, as a mapping from key to BytesRef which includes the encoded data. Every ordinal in ordinals corrspond to a CategoryPath returned from categories.

Throws:
IOException

getDrillDownStream

protected DrillDownStream getDrillDownStream(Iterable<CategoryPath> categories)
Returns a DrillDownStream for writing the categories drill-down terms.


drillDownFieldType

protected FieldType drillDownFieldType()
Returns the FieldType with which the drill-down terms should be indexed. The default is FieldInfo.IndexOptions.DOCS_ONLY.


addCountingListData

protected void addCountingListData(Document doc,
                                   Map<String,BytesRef> categoriesData,
                                   String field)
Add the counting list data to the document under the given field. Note that the field is determined by the CategoryListParams.


addFields

public void addFields(Document doc,
                      Iterable<CategoryPath> categories)
               throws IOException
Adds the needed facet fields to the document.

Throws:
IOException


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