org.apache.lucene.search.grouping

## Class AbstractSecondPassGroupingCollector<GROUP_VALUE_TYPE>

- java.lang.Object
- - org.apache.lucene.search.SimpleCollector
  - - org.apache.lucene.search.grouping.AbstractSecondPassGroupingCollector<GROUP_VALUE_TYPE>

- All Implemented Interfaces:
    Collector, LeafCollector
  Direct Known Subclasses:
    FunctionSecondPassGroupingCollector, TermSecondPassGroupingCollector

      public abstract class AbstractSecondPassGroupingCollector<GROUP_VALUE_TYPE>
      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` | `AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>`

  - ### Field Summary

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

  - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `collect(int doc)`
    `protected void` | `doSetNextReader(LeafReaderContext readerContext)`
    `TopGroups<GROUP_VALUE_TYPE>` | `getTopGroups(int withinGroupOffset)`
    `boolean` | `needsScores()`
    `protected abstract AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>` | `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<GROUP_VALUE_TYPE,AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>> groupMap

    - #### groupDocs

          protected AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>[] groupDocs

  - ### Constructor Detail

    - #### AbstractSecondPassGroupingCollector

          public AbstractSecondPassGroupingCollector(Collection<SearchGroup<GROUP_VALUE_TYPE>> 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 AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE> 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<GROUP_VALUE_TYPE> getTopGroups(int withinGroupOffset)

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