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, collectRange, 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`