org.apache.lucene.search.grouping
Class AllGroupsCollector

java.lang.Object
  extended by org.apache.lucene.search.Collector
      extended by org.apache.lucene.search.grouping.AllGroupsCollector

public class AllGroupsCollector
extends org.apache.lucene.search.Collector

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.

Implementation detail: an int hash set (SentinelIntSet) is used to detect if a group is already added to the total count. For each segment the int set is cleared and filled with previous counted groups that occur in the new segment.

WARNING: This API is experimental and might change in incompatible ways in the next release.

Constructor Summary
AllGroupsCollector(String groupField)
          Constructs a AllGroupsCollector.
AllGroupsCollector(String groupField, int initialSize)
          Expert: Constructs a AllGroupsCollector
 
Method Summary
 boolean acceptsDocsOutOfOrder()
           
 void collect(int doc)
           
 int getGroupCount()
          Returns the total number of groups for the executed search.
 Collection<String> getGroups()
          Returns the group values

This is an unordered collections of group values.

 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
 

Constructor Detail

AllGroupsCollector

public AllGroupsCollector(String groupField,
                          int initialSize)
Expert: Constructs a AllGroupsCollector

Parameters:
groupField - The field to group by
initialSize - The initial allocation size of the internal int set and group list which should roughly match the total number of expected unique groups. Be aware that the heap usage is 4 bytes * initialSize.

AllGroupsCollector

public AllGroupsCollector(String groupField)
Constructs a AllGroupsCollector. This sets the initial allocation size for the internal int set and group list to 128.

Parameters:
groupField - The field to group by
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

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 Collection<String> getGroups()
Returns the group values

This is an unordered collections of group values. For each group that matched the query there is a String representing a group value.

Returns:
the group values

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


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