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.
  • Field Details

    • mainResult

      public DocList mainResult
  • Constructor Details

    • 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 Details

    • 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(org.apache.lucene.search.Sort groupSort)
    • setWithinGroupSort

      public Grouping setWithinGroupSort(org.apache.lucene.search.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