Field FacetQuery pipeline stage configuration specifications
The Field Facet query pipeline stage is used to add a link:Solr Field Facet query to the search query pipeline.
A field facet query computes the top values for a field and returns the list of those values along with a count of the subset of documents in the search results which match that term. Field faceting works best over fields which contain a single label or set of labels from a finite, controlled lexicon such as product category. Facet field parameters can be tuned for performance, see: Facet Field Configuration.
It is possible to specify more than one field facets. For each field facet you must specify the field name plus the following additional parameters:
- 
Limit. The maximum number of terms to be returned. Default 100. 
- 
Offset. The number of top facet values to skip in the response. Default 0. 
- 
Sort. The order in which to list facet values: countordering is by documents per term, descending, andindexordering is sorted on term values themselves.
- 
Missing. The number of documents in the results set which have no value for the facet field. 
- 
Choice of facet method (advanced). Specify Solr algorithm used to calculate facet counts. (See Facet Method Configuration for details). One of: - 
enum. Small number of distinct categories.
- 
fc("field cache"). Many different values in the field, each document has low number of values, multi-valued field.
- 
fcs("single value string fields"). Good for rapidly changing indexes.
 
- 
For further details see: Solr Faceting Overview.
Query pipeline stage condition examples
Stages can be triggered conditionally when a script in the Condition field evaluates to true. Some examples are shown below.
Run this stage only for mobile clients:
params.deviceType === "mobile"Run this stage when debugging is enabled:
params.debug === "true"Run this stage when the query includes a specific term:
params.q && params.q.includes("sale")Run this stage when multiple conditions are met:
request.hasParam("fusion-user-name") && request.getFirstParam("fusion-user-name").equals("SuperUser");
!request.hasParam("isFusionPluginQuery")The first condition checks that the request parameter "fusion-user-name" is present and has the value "SuperUser". The second condition checks that the request parameter "isFusionPluginQuery" is not present.