org.apache.lucene.search.grouping.term

## Class TermAllGroupsCollector

- java.lang.Object
- - org.apache.lucene.search.Collector
  - - org.apache.lucene.search.grouping.AbstractAllGroupsCollector<BytesRef>
    - - org.apache.lucene.search.grouping.term.TermAllGroupsCollector

    public class TermAllGroupsCollector
    extends AbstractAllGroupsCollector<BytesRef>

A collector that collects all groups that match the query. Only the group value is collected, and the order is undefined. This collector does not determine the most relevant document of a group.

Implementation detail: an int hash set (SentinelIntSet) is used to detect if a group is already added to the total count. For each segment the int set is cleared and filled with previous counted groups that occur in the new segment.

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Constructor Summary

Constructors
Constructor and Description
`TermAllGroupsCollector(String groupField)` Constructs a `AbstractAllGroupsCollector`.
`TermAllGroupsCollector(String groupField, int initialSize)` Expert: Constructs a `AbstractAllGroupsCollector`

### Method Summary

Methods
`void` `collect(int doc)`
`Collection<BytesRef>` `getGroups()` Returns the group values This is an unordered collections of group values.
`void` `setNextReader(AtomicReaderContext context)`

### Methods inherited from class org.apache.lucene.search.grouping.AbstractAllGroupsCollector

`acceptsDocsOutOfOrder, getGroupCount, setScorer`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### TermAllGroupsCollector

    public TermAllGroupsCollector(String groupField,
                          int initialSize)

Expert: Constructs a `AbstractAllGroupsCollector`

Parameters:
  `groupField` - The field to group by
  `initialSize` - The initial allocation size of the internal int set and group list which should roughly match the total number of expected unique groups. Be aware that the heap usage is 4 bytes * initialSize.

#### TermAllGroupsCollector

    public TermAllGroupsCollector(String groupField)

Constructs a `AbstractAllGroupsCollector`. This sets the initial allocation size for the internal int set and group list to 128.

Parameters:
  `groupField` - The field to group by

### Method Detail

#### collect

    public void collect(int doc)
                 throws IOException

Specified by:
  `collect` in class `Collector`
Throws:
  `IOException`

#### getGroups

    public Collection<BytesRef> getGroups()

Description copied from class: `AbstractAllGroupsCollector`
Returns the group values

This is an unordered collections of group values. For each group that matched the query there is a `BytesRef` representing a group value.

Specified by:
  `getGroups` in class `AbstractAllGroupsCollector<BytesRef>`
Returns:
  the group values

#### setNextReader

    public void setNextReader(AtomicReaderContext context)
                       throws IOException

Specified by:
  `setNextReader` in class `Collector`
Throws:
  `IOException`