# All Classes and Interfaces

Class
Description
AllGroupHeadsCollector<T>
This collector specializes in collecting the most relevant document (group head) for each group that matches the query.
AllGroupHeadsCollector.GroupHead<T>
Represents a group head.
AllGroupsCollector<T>
A collector that collects all groups that match the query.
BlockGroupingCollector
BlockGroupingCollector performs grouping with a single pass collector, as long as you are grouping by a doc block field, ie all documents sharing a given group value were indexed as a doc block using the atomic `IndexWriter.addDocuments()` or `IndexWriter.updateDocuments()` API.
CollectedSearchGroup<T>
Expert: representation of a group in `FirstPassGroupingCollector`, tracking the top doc and `FieldComparator` slot.
DistinctValuesCollector<T,R>
A second pass grouping collector that keeps track of distinct values for a specified field for the top N group.
DistinctValuesCollector.GroupCount<T,R>
Returned by `DistinctValuesCollector.getGroups()`, representing the value and set of distinct values for the group.
DoubleRange
Represents a contiguous range of double values, with an inclusive minimum and exclusive maximum
DoubleRangeFactory
Groups double values into ranges
DoubleRangeGroupSelector
A GroupSelector implementation that groups documents by double values
FirstPassGroupingCollector<T>
FirstPassGroupingCollector is the first of two passes necessary to collect grouped hits.
GroupDocs<T>
Represents one group in the results.
GroupFacetCollector
Base class for computing grouped facets.
GroupFacetCollector.FacetEntry
Represents a facet entry with a value and a count.
GroupFacetCollector.GroupedFacetResult
The grouped facet result.
GroupFacetCollector.SegmentResult
Contains the local grouped segment counts for a particular segment.
GroupingSearch
Convenience class to perform grouping in a non distributed environment.
GroupReducer<T,C>
Concrete implementations of this class define what to collect for individual groups during the second-pass of a grouping search.
GroupSelector<T>
Defines a group, for use by grouping collectors
GroupSelector.State
What to do with the current value
LongRange
Represents a contiguous range of long values, with an inclusive minimum and exclusive maximum
LongRangeFactory
Groups double values into ranges
LongRangeGroupSelector
A GroupSelector implementation that groups documents by long values
SearchGroup<T>
Represents a group that is found during the first pass search.
SecondPassGroupingCollector<T>
SecondPassGroupingCollector runs over an already collected set of groups, further applying a `GroupReducer` to each group
TermGroupFacetCollector
An implementation of `GroupFacetCollector` that computes grouped facets based on the indexed terms from DocValues.
TermGroupSelector
A GroupSelector implementation that groups via SortedDocValues
TopGroups<T>
Represents result returned by a grouping search.
TopGroups.ScoreMergeMode
How the GroupDocs score (if any) should be merged.
TopGroupsCollector<T>
A second-pass collector that collects the TopDocs for each group, and returns them as a `TopGroups` object
ValueSourceGroupSelector
A GroupSelector that groups via a ValueSource