Module org.apache.lucene.grouping
Class SecondPassGroupingCollector<T>
- java.lang.Object
-
- org.apache.lucene.search.SimpleCollector
-
- org.apache.lucene.search.grouping.SecondPassGroupingCollector<T>
-
- All Implemented Interfaces:
Collector
,LeafCollector
- Direct Known Subclasses:
DistinctValuesCollector
,TopGroupsCollector
public class SecondPassGroupingCollector<T> extends SimpleCollector
SecondPassGroupingCollector runs over an already collected set of groups, further applying aGroupReducer
to each group- See Also:
TopGroupsCollector
,DistinctValuesCollector
-
-
Field Summary
Fields Modifier and Type Field Description protected GroupReducer<T,?>
groupReducer
protected java.util.Collection<SearchGroup<T>>
groups
protected GroupSelector<T>
groupSelector
protected int
totalGroupedHitCount
protected int
totalHitCount
-
Constructor Summary
Constructors Constructor Description SecondPassGroupingCollector(GroupSelector<T> groupSelector, java.util.Collection<SearchGroup<T>> groups, GroupReducer<T,?> reducer)
Create a new SecondPassGroupingCollector
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
collect(int doc)
Called once for every document matching a query, with the unbased document number.protected void
doSetNextReader(LeafReaderContext readerContext)
This method is called before collectingcontext
.GroupSelector<T>
getGroupSelector()
ScoreMode
scoreMode()
Indicates what features are required from the scorer.void
setScorer(Scorable scorer)
Called before successive calls toLeafCollector.collect(int)
.-
Methods inherited from class org.apache.lucene.search.SimpleCollector
getLeafCollector
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.lucene.search.LeafCollector
collect, competitiveIterator, finish
-
-
-
-
Field Detail
-
groupSelector
protected final GroupSelector<T> groupSelector
-
groups
protected final java.util.Collection<SearchGroup<T>> groups
-
groupReducer
protected final GroupReducer<T,?> groupReducer
-
totalHitCount
protected int totalHitCount
-
totalGroupedHitCount
protected int totalGroupedHitCount
-
-
Constructor Detail
-
SecondPassGroupingCollector
public SecondPassGroupingCollector(GroupSelector<T> groupSelector, java.util.Collection<SearchGroup<T>> groups, GroupReducer<T,?> reducer)
Create a new SecondPassGroupingCollector- Parameters:
groupSelector
- the GroupSelector that defines groups for this searchgroups
- the groups to collect documents forreducer
- the reducer to apply to each group
-
-
Method Detail
-
getGroupSelector
public GroupSelector<T> getGroupSelector()
- Returns:
- the GroupSelector used in this collector
-
scoreMode
public ScoreMode scoreMode()
Description copied from interface:Collector
Indicates what features are required from the scorer.
-
setScorer
public void setScorer(Scorable scorer) throws java.io.IOException
Description copied from interface:LeafCollector
Called before successive calls toLeafCollector.collect(int)
. Implementations that need the score of the current document (passed-in toLeafCollector.collect(int)
), should save the passed-in Scorer and call scorer.score() when needed.- Specified by:
setScorer
in interfaceLeafCollector
- Overrides:
setScorer
in classSimpleCollector
- Throws:
java.io.IOException
-
collect
public void collect(int doc) throws java.io.IOException
Description copied from interface:LeafCollector
Called once for every document matching a query, with the unbased document number.Note: The collection of the current segment can be terminated by throwing a
CollectionTerminatedException
. In this case, the last docs of the currentLeafReaderContext
will be skipped andIndexSearcher
will swallow the exception and continue collection with the next leaf.Note: This is called in an inner search loop. For good search performance, implementations of this method should not call
StoredFields.document(int)
on every hit. Doing so can slow searches by an order of magnitude or more.- Specified by:
collect
in interfaceLeafCollector
- Specified by:
collect
in classSimpleCollector
- Throws:
java.io.IOException
-
doSetNextReader
protected void doSetNextReader(LeafReaderContext readerContext) throws java.io.IOException
Description copied from class:SimpleCollector
This method is called before collectingcontext
.- Overrides:
doSetNextReader
in classSimpleCollector
- Throws:
java.io.IOException
-
-