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.
  • Field Details

    • 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 Details

    • 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 Details

    • 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