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:
    FunctionSecondPassGroupingCollector, TermSecondPassGroupingCollector

      public abstract class SecondPassGroupingCollector<T>
      extends SimpleCollector

  SecondPassGroupingCollector is the second of two passes necessary to collect grouped docs. This pass gathers the top N documents per top group computed from the first pass. Concrete subclasses define what a group is and how it is internally collected.

  See `org.apache.lucene.search.grouping` for more details including a full code example.

  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `SecondPassGroupingCollector.SearchGroupDocs<T>`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected SecondPassGroupingCollector.SearchGroupDocs<T>[]` | `groupDocs`
    `protected Map<T,SecondPassGroupingCollector.SearchGroupDocs<T>>` | `groupMap`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SecondPassGroupingCollector(Collection<SearchGroup<T>> groups, Sort groupSort, Sort withinGroupSort, int maxDocsPerGroup, boolean getScores, boolean getMaxScores, boolean fillSortFields)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `collect(int doc)`
    `protected void` | `doSetNextReader(LeafReaderContext readerContext)`
    `TopGroups<T>` | `getTopGroups(int withinGroupOffset)`
    `boolean` | `needsScores()`
    `protected abstract SecondPassGroupingCollector.SearchGroupDocs<T>` | `retrieveGroup(int doc)` Returns the group the specified doc belongs to or `null` if no group could be retrieved.
    `void` | `setScorer(Scorer 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

    - #### groupMap

          protected final Map<T,SecondPassGroupingCollector.SearchGroupDocs<T>> groupMap

    - #### groupDocs

          protected SecondPassGroupingCollector.SearchGroupDocs<T>[] groupDocs

  - ### Constructor Detail

    - #### SecondPassGroupingCollector

          public SecondPassGroupingCollector(Collection<SearchGroup<T>> groups,
                                             Sort groupSort,
                                             Sort withinGroupSort,
                                             int maxDocsPerGroup,
                                             boolean getScores,
                                             boolean getMaxScores,
                                             boolean fillSortFields)
                                      throws IOException

      Throws:
        `IOException`

  - ### Method Detail

    - #### needsScores

          public boolean needsScores()

    - #### setScorer

          public void setScorer(Scorer 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`

    - #### retrieveGroup

          protected abstract SecondPassGroupingCollector.SearchGroupDocs<T> retrieveGroup(int doc)
                                                                                   throws IOException

      Returns the group the specified doc belongs to or `null` if no group could be retrieved.
      Parameters:
        `doc` - The specified doc
      Returns:
        the group the specified doc belongs to or `null` if no group could be retrieved
      Throws:
        `IOException` - If an I/O related error occurred

    - #### doSetNextReader

          protected void doSetNextReader(LeafReaderContext readerContext)
                                  throws IOException

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

    - #### getTopGroups

          public TopGroups<T> getTopGroups(int withinGroupOffset)

Copyright © 2000-2019 Apache Software Foundation. All Rights Reserved.