## org.apache.lucene.facet.index
Class FacetFields

    java.lang.Object
      org.apache.lucene.facet.index.FacetFields

Direct Known Subclasses:
  AssociationsFacetFields, SortedSetDocValuesFacetFields

    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.