org.apache.lucene.facet.sampling

## Class SamplingWrapper

- java.lang.Object
- - org.apache.lucene.facet.search.FacetsAccumulator
  - - org.apache.lucene.facet.search.StandardFacetsAccumulator
    - - org.apache.lucene.facet.sampling.SamplingWrapper

    public class SamplingWrapper
    extends StandardFacetsAccumulator

Wrap any Facets Accumulator with sampling.

Note: Sampling accumulation (Accumulation over a sampled-set of the results), does not guarantee accurate values for `FacetResult.getNumValidDescendants()`.

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

### Field Summary

### Fields inherited from class org.apache.lucene.facet.search.StandardFacetsAccumulator

`DEFAULT_COMPLEMENT_THRESHOLD, DISABLE_COMPLEMENT, FORCE_COMPLEMENT, isUsingComplements, maxPartitions, partitionSize`

### Fields inherited from class org.apache.lucene.facet.search.FacetsAccumulator

`facetArrays, indexReader, searchParams, taxonomyReader`

### Constructor Summary

Constructors
Constructor and Description
`SamplingWrapper(StandardFacetsAccumulator delegee, Sampler sampler)`

### Method Summary

Methods
`List<FacetResult>` `accumulate(ScoredDocIDs docids)`
`double` `getComplementThreshold()` Returns the complement threshold.
`void` `setComplementThreshold(double complementThreshold)` Set the complement threshold.

### Methods inherited from class org.apache.lucene.facet.search.StandardFacetsAccumulator

`accumulate, actualDocsToAccumulate, createFacetResultsHandler, getCategoryListMap, getTotalCountsFactor, isUsingComplements, mayComplement, shouldComplement`

### Methods inherited from class org.apache.lucene.facet.search.FacetsAccumulator

`create, getAggregator, getCategoryLists`

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

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

### Constructor Detail

#### SamplingWrapper

    public SamplingWrapper(StandardFacetsAccumulator delegee,
                   Sampler sampler)

### Method Detail

#### accumulate

    public List<FacetResult> accumulate(ScoredDocIDs docids)
                                 throws IOException

Overrides:
  `accumulate` in class `StandardFacetsAccumulator`
Throws:
  `IOException`

#### getComplementThreshold

    public double getComplementThreshold()

Description copied from class: `StandardFacetsAccumulator`
Returns the complement threshold.

Overrides:
  `getComplementThreshold` in class `StandardFacetsAccumulator`
See Also:
  `StandardFacetsAccumulator.setComplementThreshold(double)`

#### setComplementThreshold

    public void setComplementThreshold(double complementThreshold)

Description copied from class: `StandardFacetsAccumulator`
Set the complement threshold. This threshold will dictate whether the complements optimization is applied. The optimization is to count for less documents. It is useful when the same FacetSearchParams are used for varying sets of documents. The first time complements is used the "total counts" are computed - counting for all the documents in the collection. Then, only the complementing set of documents is considered, and used to decrement from the overall counts, thereby walking through less documents, which is faster.

For the default settings see `StandardFacetsAccumulator.DEFAULT_COMPLEMENT_THRESHOLD`.

To forcing complements in all cases pass `StandardFacetsAccumulator.FORCE_COMPLEMENT`. This is mostly useful for testing purposes, as forcing complements when only tiny fraction of available documents match the query does not make sense and would incur performance degradations.

To disable complements pass `StandardFacetsAccumulator.DISABLE_COMPLEMENT`.

Overrides:
  `setComplementThreshold` in class `StandardFacetsAccumulator`
Parameters:
  `complementThreshold` - the complement threshold to set
See Also:
  `StandardFacetsAccumulator.getComplementThreshold()`