Class 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.
    • 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