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
SecondPassGroupingCollector runs over an already collected set of groups, further applying a
GroupReducer
to each group- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final GroupReducer<T,
?> protected final Collection<SearchGroup<T>>
protected final GroupSelector<T>
protected int
protected int
-
Constructor Summary
ConstructorsConstructorDescriptionSecondPassGroupingCollector
(GroupSelector<T> groupSelector, Collection<SearchGroup<T>> groups, GroupReducer<T, ?> reducer) Create a new SecondPassGroupingCollector -
Method Summary
Modifier and TypeMethodDescriptionvoid
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
.Indicates what features are required from the scorer.void
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
competitiveIterator
-
Field Details
-
groupSelector
-
groups
-
groupReducer
-
totalHitCount
protected int totalHitCount -
totalGroupedHitCount
protected int totalGroupedHitCount
-
-
Constructor Details
-
SecondPassGroupingCollector
public SecondPassGroupingCollector(GroupSelector<T> groupSelector, 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 Details
-
getGroupSelector
- Returns:
- the GroupSelector used in this collector
-
scoreMode
Description copied from interface:Collector
Indicates what features are required from the scorer. -
setScorer
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:
IOException
-
collect
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:
IOException
-
doSetNextReader
Description copied from class:SimpleCollector
This method is called before collectingcontext
.- Overrides:
doSetNextReader
in classSimpleCollector
- Throws:
IOException
-