Package 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
Modifier and Type
Field
Description
`protected final GroupReducer<T,?>`
`groupReducer`
`protected final Collection<SearchGroup<T>>`
`groups`
`protected final GroupSelector<T>`
`groupSelector`
`protected int`
`totalGroupedHitCount`
`protected int`
`totalHitCount`

## Constructor Summary

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

## Method Summary

Modifier and Type
Method
Description
`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`

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

`setWeight`

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

`collect, competitiveIterator, finish`

## Field Details

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

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

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