Class GroupReducer<T,C extends Collector>
- java.lang.Object
-
- org.apache.lucene.search.grouping.GroupReducer<T,C>
-
- Type Parameters:
T
- the type of the value used for groupingC
- the type ofCollector
used to reduce each group
public abstract class GroupReducer<T,C extends Collector> extends Object
Concrete implementations of this class define what to collect for individual groups during the second-pass of a grouping search. Each group is assigned a Collector returned bynewCollector()
, andLeafCollector.collect(int)
is called for each document that is in a group- See Also:
SecondPassGroupingCollector
-
-
Constructor Summary
Constructors Constructor Description GroupReducer()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
collect(T value, int doc)
Collect a given document into a given groupC
getCollector(T value)
Get the Collector for a given groupabstract boolean
needsScores()
Whether or not this reducer requires collected documents to be scoredprotected abstract C
newCollector()
Creates a new Collector for each groupvoid
setGroups(Collection<SearchGroup<T>> groups)
Define which groups should be reduced.void
setNextReader(LeafReaderContext ctx)
Called when the parentSecondPassGroupingCollector
moves to a new segmentvoid
setScorer(Scorer scorer)
Set the Scorer on all group collectors
-
-
-
Method Detail
-
setGroups
public void setGroups(Collection<SearchGroup<T>> groups)
Define which groups should be reduced. Called bySecondPassGroupingCollector
-
needsScores
public abstract boolean needsScores()
Whether or not this reducer requires collected documents to be scored
-
newCollector
protected abstract C newCollector()
Creates a new Collector for each group
-
collect
public final void collect(T value, int doc) throws IOException
Collect a given document into a given group- Throws:
IOException
- on error
-
setScorer
public final void setScorer(Scorer scorer) throws IOException
Set the Scorer on all group collectors- Throws:
IOException
-
setNextReader
public final void setNextReader(LeafReaderContext ctx) throws IOException
Called when the parentSecondPassGroupingCollector
moves to a new segment- Throws:
IOException
-
-