org.apache.lucene.search.grouping
Class AbstractSecondPassGroupingCollector<GROUP_VALUE_TYPE>

java.lang.Object
  extended by org.apache.lucene.search.Collector
      extended by 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
 class AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>
           
 
Field Summary
protected  AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>[] groupDocs
           
protected  Map<GROUP_VALUE_TYPE,AbstractSecondPassGroupingCollector.SearchGroupDocs<GROUP_VALUE_TYPE>> groupMap
           
 
Constructor Summary
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
 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 or null if no group could be retrieved.
 void setNextReader(org.apache.lucene.index.IndexReader reader, int docBase)
           
 void setScorer(org.apache.lucene.search.Scorer scorer)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 class org.apache.lucene.search.Collector
Throws:
IOException

collect

public void collect(int doc)
             throws IOException
Specified by:
collect in class org.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 or null 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 class org.apache.lucene.search.Collector
Throws:
IOException

acceptsDocsOutOfOrder

public boolean acceptsDocsOutOfOrder()
Specified by:
acceptsDocsOutOfOrder in class org.apache.lucene.search.Collector

getTopGroups

public TopGroups<GROUP_VALUE_TYPE> getTopGroups(int withinGroupOffset)


Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.