Class GroupSelector<T>

java.lang.Object
org.apache.lucene.search.grouping.GroupSelector<T>
Type Parameters:
T - the type of the group value
Direct Known Subclasses:
DoubleRangeGroupSelector, LongRangeGroupSelector, TermGroupSelector, ValueSourceGroupSelector

public abstract class GroupSelector<T> extends Object
Defines a group, for use by grouping collectors

A GroupSelector acts as an iterator over documents. For each segment, clients should call setNextReader(LeafReaderContext), and then advanceTo(int) for each matching document.

  • Constructor Details

    • GroupSelector

      public GroupSelector()
  • Method Details

    • setNextReader

      public abstract void setNextReader(org.apache.lucene.index.LeafReaderContext readerContext) throws IOException
      Set the LeafReaderContext
      Throws:
      IOException
    • setScorer

      public abstract void setScorer(org.apache.lucene.search.Scorable scorer) throws IOException
      Set the current Scorer
      Throws:
      IOException
    • advanceTo

      public abstract GroupSelector.State advanceTo(int doc) throws IOException
      Advance the GroupSelector's iterator to the given document
      Throws:
      IOException
    • currentValue

      public abstract T currentValue() throws IOException
      Get the group value of the current document

      N.B. this object may be reused, for a persistent version use copyValue()

      Throws:
      IOException
    • copyValue

      public abstract T copyValue() throws IOException
      Returns:
      a copy of the group value of the current document
      Throws:
      IOException
    • setGroups

      public abstract void setGroups(Collection<SearchGroup<T>> groups)
      Set a restriction on the group values returned by this selector

      If the selector is positioned on a document whose group value is not contained within this set, then advanceTo(int) will return GroupSelector.State.SKIP

      Parameters:
      groups - a set of SearchGroup objects to limit selections to