org.apache.lucene.facet.index

## Class CountingListBuilder

- java.lang.Object
- - org.apache.lucene.facet.index.CountingListBuilder

- All Implemented Interfaces:
    CategoryListBuilder

      public class CountingListBuilder
      extends Object
      implements CategoryListBuilder

  A `CategoryListBuilder` which builds a counting list data by encoding the category ordinals into one or more `BytesRef`. Each `BytesRef` corresponds to a set of ordinals that belong to the same partition. When partitions are not enabled (i.e. `FacetIndexingParams.getPartitionSize()` returns `Integer.MAX_VALUE`), only one `BytesRef` is returned by this class.

  Counting lists are used usually for computing the weight of categories by summing their number of occurrences (hence counting) in a result set.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `CountingListBuilder(CategoryListParams categoryListParams, FacetIndexingParams indexingParams, TaxonomyWriter taxoWriter)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Map<String,BytesRef>` | `build(IntsRef ordinals, Iterable<CategoryPath> categories)` Every returned `BytesRef` corresponds to a single partition (as defined by `FacetIndexingParams.getPartitionSize()`) and the key denotes the partition ID.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CountingListBuilder

          public CountingListBuilder(CategoryListParams categoryListParams,
                             FacetIndexingParams indexingParams,
                             TaxonomyWriter taxoWriter)

  - ### Method Detail

    - #### build

          public Map<String,BytesRef> build(IntsRef ordinals,
                                   Iterable<CategoryPath> categories)
                                     throws IOException

      Every returned `BytesRef` corresponds to a single partition (as defined by `FacetIndexingParams.getPartitionSize()`) and the key denotes the partition ID. When no partitions are defined, the returned map contains only one value.

      NOTE: the `ordinals` array is modified by adding parent ordinals to it. Also, some encoders may sort the array and remove duplicate ordinals. Therefore you may want to invoke this method after you finished processing the array for other purposes.

      Specified by:
        `build` in interface `CategoryListBuilder`
      Throws:
        `IOException`

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