org.apache.solr.search

## Class Grouping

- java.lang.Object
- - org.apache.solr.search.Grouping

-     public class Grouping
      extends Object

  Basic Solr Grouping infrastructure. Warning NOT thread safe!
  WARNING: This API is experimental and might change in incompatible ways in the next release.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `Grouping.Command<GROUP_VALUE_TYPE>` General group command.
    `class` | `Grouping.CommandField` A group command for grouping on a field.
    `class` | `Grouping.CommandFunc` A command for grouping on a function.
    `class` | `Grouping.CommandQuery` A group command for grouping on a query.
    `static class` | `Grouping.Format`
    `static class` | `Grouping.TotalCount`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `DocList` | `mainResult`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Grouping(SolrIndexSearcher searcher, QueryResult qr, QueryCommand cmd, boolean cacheSecondPassSearch, int maxDocsPercentageToCache, boolean main)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(Grouping.Command groupingCommand)`
    `void` | `addFieldCommand(String field, SolrQueryRequest request)` Adds a field command based on the specified field.
    `void` | `addFunctionCommand(String groupByStr, SolrQueryRequest request)`
    `void` | `addQueryCommand(String groupByStr, SolrQueryRequest request)`
    `void` | `execute()`
    `List<Grouping.Command>` | `getCommands()`
    `static int` | `getMax(int offset, int len, int max)` Returns offset + len if len equals zero or higher.
    `boolean` | `isSignalCacheWarning()` Returns whether a cache warning should be send to the client.
    `Grouping` | `setDefaultFormat(Grouping.Format defaultFormat)`
    `Grouping` | `setDefaultTotalCount(Grouping.TotalCount defaultTotalCount)`
    `Grouping` | `setDocsPerGroupDefault(int docsPerGroupDefault)`
    `Grouping` | `setGetGroupedDocSet(boolean getGroupedDocSet)`
    `Grouping` | `setGroupOffsetDefault(int groupOffsetDefault)`
    `Grouping` | `setGroupSort(Sort groupSort)`
    `Grouping` | `setLimitDefault(int limitDefault)`
    `Grouping` | `setWithinGroupSort(Sort withinGroupSort)`

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

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

- - ### Field Detail

    - #### mainResult

          public DocList mainResult

  - ### Constructor Detail

    - #### Grouping

          public Grouping(SolrIndexSearcher searcher,
                          QueryResult qr,
                          QueryCommand cmd,
                          boolean cacheSecondPassSearch,
                          int maxDocsPercentageToCache,
                          boolean main)

      Parameters:
        `cacheSecondPassSearch` - Whether to cache the documents and scores from the first pass search for the second pass search.
        `maxDocsPercentageToCache` - The maximum number of documents in a percentage relative from maxdoc that is allowed in the cache. When this threshold is met, the cache is not used in the second pass search.

  - ### Method Detail

    - #### add

          public void add(Grouping.Command groupingCommand)

    - #### addFieldCommand

          public void addFieldCommand(String field,
                                      SolrQueryRequest request)
                               throws SyntaxError

      Adds a field command based on the specified field. If the field is not compatible with `Grouping.CommandField` it invokes the `addFunctionCommand(String, org.apache.solr.request.SolrQueryRequest)` method.
      Parameters:
        `field` - The fieldname to group by.
      Throws:
        `SyntaxError`

    - #### addFunctionCommand

          public void addFunctionCommand(String groupByStr,
                                         SolrQueryRequest request)
                                  throws SyntaxError

      Throws:
        `SyntaxError`

    - #### addQueryCommand

          public void addQueryCommand(String groupByStr,
                                      SolrQueryRequest request)
                               throws SyntaxError

      Throws:
        `SyntaxError`

    - #### setGroupSort

          public Grouping setGroupSort(Sort groupSort)

    - #### setWithinGroupSort

          public Grouping setWithinGroupSort(Sort withinGroupSort)

    - #### setLimitDefault

          public Grouping setLimitDefault(int limitDefault)

    - #### setDocsPerGroupDefault

          public Grouping setDocsPerGroupDefault(int docsPerGroupDefault)

    - #### setGroupOffsetDefault

          public Grouping setGroupOffsetDefault(int groupOffsetDefault)

    - #### setDefaultFormat

          public Grouping setDefaultFormat(Grouping.Format defaultFormat)

    - #### setDefaultTotalCount

          public Grouping setDefaultTotalCount(Grouping.TotalCount defaultTotalCount)

    - #### setGetGroupedDocSet

          public Grouping setGetGroupedDocSet(boolean getGroupedDocSet)

    - #### getCommands

          public List<Grouping.Command> getCommands()

    - #### execute

          public void execute()
                       throws IOException

      Throws:
        `IOException`

    - #### getMax

          public static int getMax(int offset,
                                   int len,
                                   int max)

      Returns offset + len if len equals zero or higher. Otherwise returns max.
      Parameters:
        `offset` - The offset
        `len` - The number of documents to return
        `max` - The number of document to return if len < 0 or if offset + len > 0
      Returns:
        offset + len if len equals zero or higher. Otherwise returns max

    - #### isSignalCacheWarning

          public boolean isSignalCacheWarning()

      Returns whether a cache warning should be send to the client. The value `true` is returned when the cache is emptied because the caching limits where met, otherwise `false` is returned.
      Returns:
        whether a cache warning should be send to the client

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