Class TermAllGroupsCollector


  • public class TermAllGroupsCollector
    extends AbstractAllGroupsCollector<String>
    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 Detail

      • TermAllGroupsCollector

        public TermAllGroupsCollector​(String groupField,
                                      int initialSize)
        Expert: Constructs a AbstractAllGroupsCollector
        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.
      • TermAllGroupsCollector

        public TermAllGroupsCollector​(String groupField)
        Constructs a AbstractAllGroupsCollector. 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

      • collect

        public void collect​(int doc)
                     throws IOException
        Specified by:
        collect in class org.apache.lucene.search.Collector
        Throws:
        IOException
      • 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 BytesRef representing a group value.

        Specified by:
        getGroups in class AbstractAllGroupsCollector<String>
        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