Class AbstractSecondPassGroupingCollector<GROUP_VALUE_TYPE>
- java.lang.Object
-
- org.apache.lucene.search.Collector
-
- org.apache.lucene.search.grouping.AbstractSecondPassGroupingCollector<GROUP_VALUE_TYPE>
-
- Direct Known Subclasses:
TermSecondPassGroupingCollector
public abstract class AbstractSecondPassGroupingCollector<GROUP_VALUE_TYPE> extends org.apache.lucene.search.Collector
SecondPassGroupingCollector is the second of two passes necessary to collect grouped docs. This pass gathers the top N documents per top group computed from the first pass. Concrete subclasses define what a group is and how it is internally collected.See
org.apache.lucene.search.grouping
for more details including a full code example.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>
-
Field Summary
Fields Modifier and Type Field Description protected AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>[]
groupDocs
protected Map<GROUP_VALUE_TYPE,AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>>
groupMap
-
Constructor Summary
Constructors Constructor Description AbstractSecondPassGroupingCollector(Collection<SearchGroup<GROUP_VALUE_TYPE>> groups, org.apache.lucene.search.Sort groupSort, org.apache.lucene.search.Sort withinGroupSort, int maxDocsPerGroup, boolean getScores, boolean getMaxScores, boolean fillSortFields)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description boolean
acceptsDocsOutOfOrder()
void
collect(int doc)
TopGroups<GROUP_VALUE_TYPE>
getTopGroups(int withinGroupOffset)
protected abstract AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>
retrieveGroup(int doc)
Returns the group the specified doc belongs to ornull
if no group could be retrieved.void
setNextReader(org.apache.lucene.index.IndexReader reader, int docBase)
void
setScorer(org.apache.lucene.search.Scorer scorer)
-
-
-
Field Detail
-
groupMap
protected final Map<GROUP_VALUE_TYPE,AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>> groupMap
-
groupDocs
protected AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>[] groupDocs
-
-
Constructor Detail
-
AbstractSecondPassGroupingCollector
public AbstractSecondPassGroupingCollector(Collection<SearchGroup<GROUP_VALUE_TYPE>> groups, org.apache.lucene.search.Sort groupSort, org.apache.lucene.search.Sort withinGroupSort, int maxDocsPerGroup, boolean getScores, boolean getMaxScores, boolean fillSortFields) throws IOException
- Throws:
IOException
-
-
Method Detail
-
setScorer
public void setScorer(org.apache.lucene.search.Scorer scorer) throws IOException
- Specified by:
setScorer
in classorg.apache.lucene.search.Collector
- Throws:
IOException
-
collect
public void collect(int doc) throws IOException
- Specified by:
collect
in classorg.apache.lucene.search.Collector
- Throws:
IOException
-
retrieveGroup
protected abstract AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE> retrieveGroup(int doc) throws IOException
Returns the group the specified doc belongs to ornull
if no group could be retrieved.- Parameters:
doc
- The specified doc- Returns:
- the group the specified doc belongs to or
null
if no group could be retrieved - Throws:
IOException
- If an I/O related error occurred
-
setNextReader
public void setNextReader(org.apache.lucene.index.IndexReader reader, int docBase) throws IOException
- Specified by:
setNextReader
in classorg.apache.lucene.search.Collector
- Throws:
IOException
-
acceptsDocsOutOfOrder
public boolean acceptsDocsOutOfOrder()
- Specified by:
acceptsDocsOutOfOrder
in classorg.apache.lucene.search.Collector
-
getTopGroups
public TopGroups<GROUP_VALUE_TYPE> getTopGroups(int withinGroupOffset)
-
-