org.apache.lucene.search.grouping

## Class TopGroups<T>

- java.lang.Object
- - org.apache.lucene.search.grouping.TopGroups<T>

-     public class TopGroups<T>
      extends Object

  Represents result returned by a grouping search.
  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
    --- | ---
    `static class` | `TopGroups.ScoreMergeMode` How the GroupDocs score (if any) should be merged.

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `GroupDocs<T>[]` | `groups` Group results in groupSort order
    `SortField[]` | `groupSort` How groups are sorted against each other
    `float` | `maxScore` Highest score across all hits, or `Float.NaN` if scores were not computed.
    `Integer` | `totalGroupCount` The total number of unique groups.
    `int` | `totalGroupedHitCount` Number of documents grouped into the topN groups
    `int` | `totalHitCount` Number of documents matching the search
    `SortField[]` | `withinGroupSort` How docs are sorted within each group

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TopGroups(SortField[] groupSort, SortField[] withinGroupSort, int totalHitCount, int totalGroupedHitCount, GroupDocs<T>[] groups, float maxScore)`
    `TopGroups(TopGroups<T> oldTopGroups, Integer totalGroupCount)`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static <T> TopGroups<T>` | `merge(TopGroups<T>[] shardGroups, Sort groupSort, Sort docSort, int docOffset, int docTopN, TopGroups.ScoreMergeMode scoreMergeMode)` Merges an array of TopGroups, for example obtained from the second-pass collector across multiple shards.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### totalHitCount

          public final int totalHitCount

      Number of documents matching the search

    - #### totalGroupedHitCount

          public final int totalGroupedHitCount

      Number of documents grouped into the topN groups

    - #### totalGroupCount

          public final Integer totalGroupCount

      The total number of unique groups. If `null` this value is not computed.

    - #### groups

          public final GroupDocs<T>[] groups

      Group results in groupSort order

    - #### groupSort

          public final SortField[] groupSort

      How groups are sorted against each other

    - #### withinGroupSort

          public final SortField[] withinGroupSort

      How docs are sorted within each group

    - #### maxScore

          public final float maxScore

      Highest score across all hits, or `Float.NaN` if scores were not computed.

  - ### Constructor Detail

    - #### TopGroups

          public TopGroups(SortField[] groupSort,
                           SortField[] withinGroupSort,
                           int totalHitCount,
                           int totalGroupedHitCount,
                           GroupDocs<T>[] groups,
                           float maxScore)

    - #### TopGroups

          public TopGroups(TopGroups<T> oldTopGroups,
                           Integer totalGroupCount)

  - ### Method Detail

    - #### merge

          public static <T> TopGroups<T> merge(TopGroups<T>[] shardGroups,
                                               Sort groupSort,
                                               Sort docSort,
                                               int docOffset,
                                               int docTopN,
                                               TopGroups.ScoreMergeMode scoreMergeMode)

      Merges an array of TopGroups, for example obtained from the second-pass collector across multiple shards. Each TopGroups must have been sorted by the same groupSort and docSort, and the top groups passed to all second-pass collectors must be the same. NOTE: We can't always compute an exact totalGroupCount. Documents belonging to a group may occur on more than one shard and thus the merged totalGroupCount can be higher than the actual totalGroupCount. In this case the totalGroupCount represents a upper bound. If the documents of one group do only reside in one shard then the totalGroupCount is exact. NOTE: the topDocs in each GroupDocs is actually an instance of TopDocsAndShards

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