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 grouping
C - the type of Collector 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 by newCollector(), and LeafCollector.collect(int) is called for each document that is in a group

See Also:
  • Constructor Details

    • GroupReducer

      public GroupReducer()
  • Method Details

    • setGroups

      public void setGroups(Collection<SearchGroup<T>> groups)
      Define which groups should be reduced.

      Called by SecondPassGroupingCollector

    • 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
    • getCollector

      public final C getCollector(T value)
      Get the Collector for a given 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(Scorable scorer) throws IOException
      Set the Scorer on all group collectors
      Throws:
      IOException
    • setNextReader

      public final void setNextReader(LeafReaderContext ctx) throws IOException
      Called when the parent SecondPassGroupingCollector moves to a new segment
      Throws:
      IOException