# All Classes

- All Classes Class Summary Enum Summary
  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 extends Collector> | 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