Class AbstractFirstPassGroupingCollector<GROUP_VALUE_TYPE>
- java.lang.Object
-
- org.apache.lucene.search.Collector
-
- org.apache.lucene.search.grouping.AbstractFirstPassGroupingCollector<GROUP_VALUE_TYPE>
-
- Direct Known Subclasses:
TermFirstPassGroupingCollector
public abstract class AbstractFirstPassGroupingCollector<GROUP_VALUE_TYPE> extends org.apache.lucene.search.CollectorFirstPassGroupingCollector is the first of two passes necessary to collect grouped hits. This pass gathers the top N sorted groups. Concrete subclasses define what a group is and how it is internally collected.See
org.apache.lucene.search.groupingfor more details including a full code example.- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
-
Constructor Summary
Constructors Constructor Description AbstractFirstPassGroupingCollector(org.apache.lucene.search.Sort groupSort, int topNGroups)Create the first pass collector.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description booleanacceptsDocsOutOfOrder()voidcollect(int doc)protected abstract GROUP_VALUE_TYPEcopyDocGroupValue(GROUP_VALUE_TYPE groupValue, GROUP_VALUE_TYPE reuse)Returns a copy of the specified group value by creating a new instance and copying the value from the specified groupValue in the new instance.protected abstract GROUP_VALUE_TYPEgetDocGroupValue(int doc)Returns the group value for the specified doc.Collection<SearchGroup<GROUP_VALUE_TYPE>>getTopGroups(int groupOffset, boolean fillFields)Returns top groups, starting from offset.voidsetNextReader(org.apache.lucene.index.IndexReader reader, int docBase)voidsetScorer(org.apache.lucene.search.Scorer scorer)
-
-
-
Constructor Detail
-
AbstractFirstPassGroupingCollector
public AbstractFirstPassGroupingCollector(org.apache.lucene.search.Sort groupSort, int topNGroups) throws IOExceptionCreate the first pass collector.- Parameters:
groupSort- TheSortused to sort the groups. The top sorted document within each group according to groupSort, determines how that group sorts against other groups. This must be non-null, ie, if you want to groupSort by relevance use Sort.RELEVANCE.topNGroups- How many top groups to keep.- Throws:
IOException- If I/O related errors occur
-
-
Method Detail
-
getTopGroups
public Collection<SearchGroup<GROUP_VALUE_TYPE>> getTopGroups(int groupOffset, boolean fillFields)
Returns top groups, starting from offset. This may return null, if no groups were collected, or if the number of unique groups collected is <= offset.- Parameters:
groupOffset- The offset in the collected groupsfillFields- Whether to fill toSearchGroup.sortValues- Returns:
- top groups, starting from offset
-
setScorer
public void setScorer(org.apache.lucene.search.Scorer scorer) throws IOException- Specified by:
setScorerin classorg.apache.lucene.search.Collector- Throws:
IOException
-
collect
public void collect(int doc) throws IOException- Specified by:
collectin classorg.apache.lucene.search.Collector- Throws:
IOException
-
acceptsDocsOutOfOrder
public boolean acceptsDocsOutOfOrder()
- Specified by:
acceptsDocsOutOfOrderin classorg.apache.lucene.search.Collector
-
setNextReader
public void setNextReader(org.apache.lucene.index.IndexReader reader, int docBase) throws IOException- Specified by:
setNextReaderin classorg.apache.lucene.search.Collector- Throws:
IOException
-
getDocGroupValue
protected abstract GROUP_VALUE_TYPE getDocGroupValue(int doc)
Returns the group value for the specified doc.- Parameters:
doc- The specified doc- Returns:
- the group value for the specified doc
-
copyDocGroupValue
protected abstract GROUP_VALUE_TYPE copyDocGroupValue(GROUP_VALUE_TYPE groupValue, GROUP_VALUE_TYPE reuse)
Returns a copy of the specified group value by creating a new instance and copying the value from the specified groupValue in the new instance. Or optionally the reuse argument can be used to copy the group value in.- Parameters:
groupValue- The group value to copyreuse- Optionally a reuse instance to prevent a new instance creation- Returns:
- a copy of the specified group value
-
-