Class AbstractAllGroupHeadsCollector<GH extends AbstractAllGroupHeadsCollector.GroupHead>
- java.lang.Object
-
- org.apache.lucene.search.Collector
-
- org.apache.lucene.search.grouping.AbstractAllGroupHeadsCollector<GH>
-
- Direct Known Subclasses:
TermAllGroupHeadsCollector
public abstract class AbstractAllGroupHeadsCollector<GH extends AbstractAllGroupHeadsCollector.GroupHead> extends org.apache.lucene.search.Collector
This collector specializes in collecting the most relevant document (group head) for each group that match the query.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractAllGroupHeadsCollector.GroupHead<GROUP_VALUE_TYPE>
Represents a group head.protected class
AbstractAllGroupHeadsCollector.TemporalResult
Contains the result of group head retrieval.
-
Field Summary
Fields Modifier and Type Field Description protected int
compIDXEnd
protected int[]
reversed
protected AbstractAllGroupHeadsCollector.TemporalResult
temporalResult
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractAllGroupHeadsCollector(int numberOfSorts)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description boolean
acceptsDocsOutOfOrder()
void
collect(int doc)
protected abstract Collection<GH>
getCollectedGroupHeads()
Returns the collected group heads.int
groupHeadsSize()
protected abstract void
retrieveGroupHeadAndAddIfNotExist(int doc)
Returns the group head and puts it intotemporalResult
.int[]
retrieveGroupHeads()
org.apache.lucene.util.FixedBitSet
retrieveGroupHeads(int maxDoc)
-
-
-
Field Detail
-
reversed
protected final int[] reversed
-
compIDXEnd
protected final int compIDXEnd
-
temporalResult
protected final AbstractAllGroupHeadsCollector.TemporalResult temporalResult
-
-
Method Detail
-
retrieveGroupHeads
public org.apache.lucene.util.FixedBitSet retrieveGroupHeads(int maxDoc)
- Parameters:
maxDoc
- The maxDoc of the top levelIndexReader
.- Returns:
- an
FixedBitSet
containing all group heads.
-
retrieveGroupHeads
public int[] retrieveGroupHeads()
- Returns:
- an int array containing all group heads. The size of the array is equal to number of collected unique groups.
-
groupHeadsSize
public int groupHeadsSize()
- Returns:
- the number of group heads found for a query.
-
retrieveGroupHeadAndAddIfNotExist
protected abstract void retrieveGroupHeadAndAddIfNotExist(int doc) throws IOException
Returns the group head and puts it intotemporalResult
. If the group head wasn't encountered before then it will be added to the collected group heads. TheAbstractAllGroupHeadsCollector.TemporalResult.stop
property will betrue
if the group head wasn't encountered before otherwisefalse
.- Parameters:
doc
- The document to retrieve the group head for.- Throws:
IOException
- If I/O related errors occur
-
getCollectedGroupHeads
protected abstract Collection<GH> getCollectedGroupHeads()
Returns the collected group heads. Subsequent calls should return the same group heads.- Returns:
- the collected group heads
-
collect
public void collect(int doc) throws IOException
- Specified by:
collect
in classorg.apache.lucene.search.Collector
- Throws:
IOException
-
acceptsDocsOutOfOrder
public boolean acceptsDocsOutOfOrder()
- Specified by:
acceptsDocsOutOfOrder
in classorg.apache.lucene.search.Collector
-
-