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
    Description
    static enum 
    How the GroupDocs score (if any) should be merged.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    final GroupDocs<T>[]
    Group results in groupSort order
    final org.apache.lucene.search.SortField[]
    How groups are sorted against each other
    final float
    Highest score across all hits, or Float.NaN if scores were not computed.
    final Integer
    The total number of unique groups.
    final int
    Number of documents grouped into the topN groups
    final int
    Number of documents matching the search
    final org.apache.lucene.search.SortField[]
    How docs are sorted within each group
  • Constructor Summary

    Constructors
    Constructor
    Description
    TopGroups(TopGroups<T> oldTopGroups, Integer totalGroupCount)
     
    TopGroups(org.apache.lucene.search.SortField[] groupSort, org.apache.lucene.search.SortField[] withinGroupSort, int totalHitCount, int totalGroupedHitCount, GroupDocs<T>[] groups, float maxScore)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static <T> TopGroups<T>
    merge(TopGroups<T>[] shardGroups, org.apache.lucene.search.Sort groupSort, org.apache.lucene.search.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 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 org.apache.lucene.search.SortField[] groupSort
      How groups are sorted against each other
    • withinGroupSort

      public final org.apache.lucene.search.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(org.apache.lucene.search.SortField[] groupSort, org.apache.lucene.search.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, org.apache.lucene.search.Sort groupSort, org.apache.lucene.search.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