Package 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 Description class
Grouping.Command<T>
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 Description DocList
mainResult
-
Constructor Summary
Constructors Constructor 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 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(org.apache.lucene.search.Sort groupSort)
Grouping
setLimitDefault(int limitDefault)
Grouping
setWithinGroupSort(org.apache.lucene.search.Sort withinGroupSort)
-
-
-
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 withGrouping.CommandField
it invokes theaddFunctionCommand(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 offsetlen
- The number of documents to returnmax
- 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 valuetrue
is returned when the cache is emptied because the caching limits where met, otherwisefalse
is returned.- Returns:
- whether a cache warning should be send to the client
-
-