org.apache.lucene.search.grouping

## Class TopGroupsCollector<T>

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

Type Parameters:
  `T` - the type of the group value

All Implemented Interfaces:
  Collector, LeafCollector

    public class TopGroupsCollector<T>
    extends SecondPassGroupingCollector<T>

A second-pass collector that collects the TopDocs for each group, and returns them as a `TopGroups` object

### Field Summary

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

`groupReducer, groups, groupSelector, totalGroupedHitCount, totalHitCount`

### Constructor Summary

Constructors
Constructor and Description
`TopGroupsCollector(GroupSelector<T> groupSelector, Collection<SearchGroup<T>> groups, Sort groupSort, Sort withinGroupSort, int maxDocsPerGroup, boolean getMaxScores)` Create a new TopGroupsCollector

### Method Summary

All Methods Instance Methods Concrete Methods
`TopGroups<T>` `getTopGroups(int withinGroupOffset)` Get the TopGroups recorded by this collector

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

### Constructor Detail

#### TopGroupsCollector

    public TopGroupsCollector(GroupSelector<T> groupSelector,
                              Collection<SearchGroup<T>> groups,
                              Sort groupSort,
                              Sort withinGroupSort,
                              int maxDocsPerGroup,
                              boolean getMaxScores)

Create a new TopGroupsCollector

Parameters:
  `groupSelector` - the group selector used to define groups
  `groups` - the groups to collect TopDocs for
  `groupSort` - the order in which groups are returned
  `withinGroupSort` - the order in which documents are sorted in each group
  `maxDocsPerGroup` - the maximum number of docs to collect for each group
  `getMaxScores` - if true, record the maximum score for each group

### Method Detail

#### getTopGroups

    public TopGroups<T> getTopGroups(int withinGroupOffset)

Get the TopGroups recorded by this collector

Parameters:
  `withinGroupOffset` - the offset within each group to start collecting documents