Class AllGroupsCollector<T>
- java.lang.Object
-
- org.apache.lucene.search.SimpleCollector
-
- org.apache.lucene.search.grouping.AllGroupsCollector<T>
-
- All Implemented Interfaces:
Collector
,LeafCollector
public class AllGroupsCollector<T> extends SimpleCollector
A collector that collects all groups that match the query. Only the group value is collected, and the order is undefined. This collector does not determine the most relevant document of a group.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set<T>
groups
private GroupSelector<T>
groupSelector
-
Constructor Summary
Constructors Constructor Description AllGroupsCollector(GroupSelector<T> groupSelector)
Create a new AllGroupsCollector
-
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 context)
This method is called before collectingcontext
.int
getGroupCount()
Returns the total number of groups for the executed search.java.util.Collection<T>
getGroups()
Returns the group valuesScoreMode
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
competitiveIterator
-
-
-
-
Field Detail
-
groupSelector
private final GroupSelector<T> groupSelector
-
groups
private final java.util.Set<T> groups
-
-
Constructor Detail
-
AllGroupsCollector
public AllGroupsCollector(GroupSelector<T> groupSelector)
Create a new AllGroupsCollector- Parameters:
groupSelector
- the GroupSelector to determine groups
-
-
Method Detail
-
getGroupCount
public int getGroupCount()
Returns the total number of groups for the executed search. This is a convenience method. The following code snippet has the same effect:getGroups().size()
- Returns:
- The total number of groups for the executed search
-
getGroups
public java.util.Collection<T> getGroups()
Returns the group valuesThis is an unordered collections of group values.
- Returns:
- the group values
-
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
-
doSetNextReader
protected void doSetNextReader(LeafReaderContext context) throws java.io.IOException
Description copied from class:SimpleCollector
This method is called before collectingcontext
.- Overrides:
doSetNextReader
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
IndexSearcher.doc(int)
orIndexReader.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
-
-