org.apache.lucene.search.grouping

## Class TopGroups<GROUP_VALUE_TYPE>

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

-     public class TopGroups<GROUP_VALUE_TYPE>
      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<GROUP_VALUE_TYPE>[]` | `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<GROUP_VALUE_TYPE>[] groups, float maxScore)`
    `TopGroups(TopGroups<GROUP_VALUE_TYPE> oldTopGroups, Integer totalGroupCount)`

  - ### Method Summary

    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<GROUP_VALUE_TYPE>[] 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<GROUP_VALUE_TYPE>[] groups,
                   float maxScore)

    - #### TopGroups

          public TopGroups(TopGroups<GROUP_VALUE_TYPE> 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)
                                    throws IOException

      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
      Throws:
        `IOException`

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