Package org.apache.lucene.search.grouping

# Class DistinctValuesCollector<T,R>

java.lang.Object
org.apache.lucene.search.SimpleCollector
org.apache.lucene.search.grouping.SecondPassGroupingCollector<T>
org.apache.lucene.search.grouping.DistinctValuesCollector<T,R>

All Implemented Interfaces:
  `Collector`, `LeafCollector`

public class DistinctValuesCollector<T,R> extends SecondPassGroupingCollector<T>
A second pass grouping collector that keeps track of distinct values for a specified field for the top N group.

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

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`DistinctValuesCollector.GroupCount<T,R>`
Returned by `getGroups()`, representing the value and set of distinct values for the group.

## Field Summary

### Fields inherited from class org.apache.lucene.search.grouping.SecondPassGroupingCollector

`groupReducer, groups, groupSelector, totalGroupedHitCount, totalHitCount`

## Constructor Summary

Constructors
Constructor
Description
`DistinctValuesCollector(GroupSelector<T> groupSelector, Collection<SearchGroup<T>> groups, GroupSelector<R> valueSelector)`
Create a DistinctValuesCollector

## Method Summary

Modifier and Type
Method
Description
`List<DistinctValuesCollector.GroupCount<T,R>>`
`getGroups()`
Returns all unique values for each top N group.

### Methods inherited from class org.apache.lucene.search.grouping.SecondPassGroupingCollector

`collect, doSetNextReader, getGroupSelector, scoreMode, setScorer`

### Methods inherited from class org.apache.lucene.search.SimpleCollector

`getLeafCollector`

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

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

### Methods inherited from interface org.apache.lucene.search.Collector

`setWeight`

### Methods inherited from interface org.apache.lucene.search.LeafCollector

`collect, competitiveIterator, finish`

## Constructor Details

### DistinctValuesCollector

public DistinctValuesCollector(GroupSelector<T> groupSelector, Collection<SearchGroup<T>> groups, GroupSelector<R> valueSelector)
Create a DistinctValuesCollector

Parameters:
  `groupSelector` - the group selector to determine the top-level groups
  `groups` - the top-level groups to collect for
  `valueSelector` - a group selector to determine which values to collect per-group

## Method Details

### getGroups

public List<DistinctValuesCollector.GroupCount<T,R>> getGroups()
Returns all unique values for each top N group.

Returns:
  all unique values for each top N group