org.apache.lucene.facet.index
Class CountingListBuilder

java.lang.Object
  extended by 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
CountingListBuilder(CategoryListParams categoryListParams, FacetIndexingParams indexingParams, TaxonomyWriter taxoWriter)
           
 
Method Summary
 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.