org.apache.solr.search

## Class Grouping.Command<GROUP_VALUE_TYPE>

- java.lang.Object
- - org.apache.solr.search.Grouping.Command<GROUP_VALUE_TYPE>

- Direct Known Subclasses:
    Grouping.CommandField, Grouping.CommandFunc, Grouping.CommandQuery
  Enclosing class:
    Grouping

      public abstract class Grouping.Command<GROUP_VALUE_TYPE>
      extends Object

  General group command. A group command is responsible for creating the first and second pass collectors. A group command is also responsible for creating the response structure.

  Note: Maybe the creating the response structure should be done in something like a ReponseBuilder??? Warning NOT thread save!

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `int` | `docsPerGroup`
    `Grouping.Format` | `format`
    `int` | `groupOffset`
    `Sort` | `groupSort`
    `String` | `key`
    `boolean` | `main`
    `int` | `numGroups`
    `int` | `offset`
    `Grouping.TotalCount` | `totalCount`
    `Sort` | `withinGroupSort`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Command()`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `addDocList(NamedList rsp, GroupDocs groups)`
    `protected NamedList` | `commonResponse()`
    `AbstractAllGroupHeadsCollector<?>` | `createAllGroupCollector()` Returns a collector that is able to return the most relevant document of all groups.
    `protected abstract Collector` | `createFirstPassCollector()` Returns one or more `Collector` instances that are needed to perform the first pass search.
    `protected Collector` | `createSecondPassCollector()` Returns zero or more `Collector` instances that are needed to perform the second pass search.
    `protected DocList` | `createSimpleResponse()`
    `protected abstract void` | `finish()` Performs any necessary post actions to prepare the response.
    `protected DocList` | `getDocList(GroupDocs groups)`
    `abstract int` | `getMatches()` Returns the number of matches for this `Command`.
    `protected Integer` | `getNumberOfGroups()` Returns the number of groups found for this `Command`.
    `protected abstract void` | `prepare()` Prepare this `Command` for execution.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### key

          public String key

    - #### withinGroupSort

          public Sort withinGroupSort

    - #### groupSort

          public Sort groupSort

    - #### docsPerGroup

          public int docsPerGroup

    - #### groupOffset

          public int groupOffset

    - #### numGroups

          public int numGroups

    - #### offset

          public int offset

    - #### format

          public Grouping.Format format

    - #### main

          public boolean main

    - #### totalCount

          public Grouping.TotalCount totalCount

  - ### Constructor Detail

    - #### Command

          public Command()

  - ### Method Detail

    - #### prepare

          protected abstract void prepare()
                                   throws IOException

      Prepare this `Command` for execution.
      Throws:
        `IOException` - If I/O related errors occur

    - #### createFirstPassCollector

          protected abstract Collector createFirstPassCollector()
                                                         throws IOException

      Returns one or more `Collector` instances that are needed to perform the first pass search. If multiple Collectors are returned then these wrapped in a `MultiCollector`.
      Returns:
        one or more `Collector` instances that are need to perform the first pass search
      Throws:
        `IOException` - If I/O related errors occur

    - #### createSecondPassCollector

          protected Collector createSecondPassCollector()
                                                 throws IOException

      Returns zero or more `Collector` instances that are needed to perform the second pass search. In the case when no `Collector` instances are created `null` is returned. If multiple Collectors are returned then these wrapped in a `MultiCollector`.
      Returns:
        zero or more `Collector` instances that are needed to perform the second pass search
      Throws:
        `IOException` - If I/O related errors occur

    - #### createAllGroupCollector

          public AbstractAllGroupHeadsCollector<?> createAllGroupCollector()
                                                                    throws IOException

      Returns a collector that is able to return the most relevant document of all groups. Returns `null` if the command doesn't support this type of collector.
      Returns:
        a collector that is able to return the most relevant document of all groups.
      Throws:
        `IOException` - If I/O related errors occur

    - #### finish

          protected abstract void finish()
                                  throws IOException

      Performs any necessary post actions to prepare the response.
      Throws:
        `IOException` - If I/O related errors occur

    - #### getMatches

          public abstract int getMatches()

      Returns the number of matches for this `Command`.
      Returns:
        the number of matches for this `Command`

    - #### getNumberOfGroups

          protected Integer getNumberOfGroups()

      Returns the number of groups found for this `Command`. If the command doesn't support counting the groups `null` is returned.
      Returns:
        the number of groups found for this `Command`

    - #### commonResponse

          protected NamedList commonResponse()

    - #### getDocList

          protected DocList getDocList(GroupDocs groups)

    - #### addDocList

          protected void addDocList(NamedList rsp,
                                    GroupDocs groups)

    - #### createSimpleResponse

          protected DocList createSimpleResponse()

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