public class TermAllGroupsCollector extends AllGroupsCollector<BytesRef>
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.
Constructor and Description |
---|
TermAllGroupsCollector(String groupField)
Constructs a
AllGroupsCollector . |
TermAllGroupsCollector(String groupField,
int initialSize)
Expert: Constructs a
AllGroupsCollector |
Modifier and Type | Method and Description |
---|---|
void |
collect(int doc) |
protected void |
doSetNextReader(LeafReaderContext context) |
Collection<BytesRef> |
getGroups()
Returns the group values
|
getGroupCount, needsScores, setScorer
getLeafCollector
public TermAllGroupsCollector(String groupField, int initialSize)
AllGroupsCollector
groupField
- The field to group byinitialSize
- 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.public TermAllGroupsCollector(String groupField)
AllGroupsCollector
. This sets the
initial allocation size for the internal int set and group
list to 128.groupField
- The field to group bypublic void collect(int doc) throws IOException
collect
in interface LeafCollector
collect
in class SimpleCollector
IOException
public Collection<BytesRef> getGroups()
AllGroupsCollector
This is an unordered collections of group values. For each group that matched the query there is a BytesRef
representing a group value.
getGroups
in class AllGroupsCollector<BytesRef>
protected void doSetNextReader(LeafReaderContext context) throws IOException
doSetNextReader
in class SimpleCollector
IOException
Copyright © 2000-2017 Apache Software Foundation. All Rights Reserved.