org.apache.lucene.search.grouping
Class TopGroups<GROUP_VALUE_TYPE>

java.lang.Object
  extended by 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.

Field Summary
 GroupDocs<GROUP_VALUE_TYPE>[] groups
          Group results in groupSort order
 SortField[] groupSort
          How groups are sorted against each other
 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
TopGroups(SortField[] groupSort, SortField[] withinGroupSort, int totalHitCount, int totalGroupedHitCount, GroupDocs<GROUP_VALUE_TYPE>[] groups)
           
TopGroups(TopGroups<GROUP_VALUE_TYPE> oldTopGroups, Integer totalGroupCount)
           
 
Method Summary
static
<T> TopGroups<T>
merge(TopGroups<T>[] shardGroups, Sort groupSort, Sort docSort, int docOffset, int docTopN)
          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

Constructor Detail

TopGroups

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

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)
                          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