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 GroupReducer<T,​?>` | `groupReducer` |
    `protected Collection<SearchGroup<T>>` | `groups` |
    `protected 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

    All Methods Instance Methods Concrete Methods
    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 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`