org.apache.lucene.search.grouping

## Class SecondPassGroupingCollector<T>

- java.lang.Object
- - org.apache.lucene.search.SimpleCollector
  - - org.apache.lucene.search.grouping.SecondPassGroupingCollector<T>

All Implemented Interfaces:
  Collector, LeafCollector

Direct Known Subclasses:
  DistinctValuesCollector, TopGroupsCollector

    public class SecondPassGroupingCollector<T>
    extends SimpleCollector

SecondPassGroupingCollector runs over an already collected set of groups, further applying a `GroupReducer` to each group

See Also:
  `TopGroupsCollector`, `DistinctValuesCollector`
WARNING: This API is experimental and might change in incompatible ways in the next release.

### Field Summary

Fields
`protected GroupReducer<T,?>` `groupReducer`
`protected Collection<SearchGroup<T>>` `groups`
`protected GroupSelector<T>` `groupSelector`
`protected int` `totalGroupedHitCount`
`protected int` `totalHitCount`

### Constructor Summary

Constructors
Constructor and Description
`SecondPassGroupingCollector(GroupSelector<T> groupSelector, Collection<SearchGroup<T>> groups, GroupReducer<T,?> reducer)` Create a new SecondPassGroupingCollector

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `collect(int doc)`
`protected void` `doSetNextReader(LeafReaderContext readerContext)`
`GroupSelector<T>` `getGroupSelector()`
`ScoreMode` `scoreMode()`
`void` `setScorer(Scorable scorer)`

### 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`

### Field Detail

#### groupSelector

    protected final GroupSelector<T> groupSelector

#### groups

    protected final Collection<SearchGroup<T>> groups

#### groupReducer

    protected final GroupReducer<T,?> groupReducer

#### totalHitCount

    protected int totalHitCount

#### totalGroupedHitCount

    protected int totalGroupedHitCount

### Constructor Detail

#### SecondPassGroupingCollector

    public SecondPassGroupingCollector(GroupSelector<T> groupSelector,
                                       Collection<SearchGroup<T>> groups,
                                       GroupReducer<T,?> reducer)

Create a new SecondPassGroupingCollector

Parameters:
  `groupSelector` - the GroupSelector that defines groups for this search
  `groups` - the groups to collect documents for
  `reducer` - the reducer to apply to each group

### Method Detail

#### getGroupSelector

    public GroupSelector<T> getGroupSelector()

Returns:
  the GroupSelector used in this collector

#### scoreMode

    public ScoreMode scoreMode()

#### setScorer

    public void setScorer(Scorable scorer)
                   throws IOException

Specified by:
  `setScorer` in interface `LeafCollector`
Overrides:
  `setScorer` in class `SimpleCollector`
Throws:
  `IOException`

#### collect

    public void collect(int doc)
                 throws IOException

Specified by:
  `collect` in interface `LeafCollector`
Specified by:
  `collect` in class `SimpleCollector`
Throws:
  `IOException`

#### doSetNextReader

    protected void doSetNextReader(LeafReaderContext readerContext)
                            throws IOException

Overrides:
  `doSetNextReader` in class `SimpleCollector`
Throws:
  `IOException`