COLLECTION_NAME_signals_aggr collection and returns updated boost weights for the items in the main query’s search results. Items that have received more user interaction also receive higher boost weights.
See Recommendation Methods for more information.
This stage supports asynchronous processing.
This stage accesses the 
signals_aggr collection. Before using it, verify that the following permission is set:GET:/solr/COLLECTION_NAME_signals_aggr/selectConfiguration overview
The fields below are especially useful to understand when configuring this stage.| Number of Recommendations numRecommendations | Sets the rowsquery param in the main query as the maximum number of query results which will be boosted by this pipeline stage. | 
| Number of Signals numSignals | Sets the rowsquery param in the query that searches theCOLLECTION_NAME_signals_aggrcollection, so only the specified number of aggregated signals are retrieved and used for boosting. When signals boosting is applied to a query, aggregated signals records are queried from the appropriate_signals_aggrcollection to find out the popularity or boost weight for documents which have signals.numSignalslimits the number of records to be queried from a_signals_aggrcollection and used to calculate this boost. | 
| Aggregation Type aggrType | A filter to retrieve aggregated signals in the COLLECTION_NAME_signals_aggrcollection per each aggregated signal’saggr_type_sfield value. | 
| Solr Field to Boost On boostId | The document field in the main collection on which to perform boosting. Typically it should use default field, which is id.  This field corresponds to the Rollup Field/rollupFieldfield. Together, these two fields act like aFIELD:VALUEpair in the query modification for boosting. | 
| Boost Method boostingMethod | This adds a query parameter to the original query, either “query-param” or “query-parser”. The result is (“query-param” or “query-parser”) + Boost Param(“boost” or bq), as in the examples below:●“query-param”+“boost”, result boost query param**: boost="map(query({!field f='id' v=‘6239046,13026192}), 0, 0, 1, 27.1705)"●“query-parser”+“boost”, result boost query param**: bp_xxx_bbqx="map(query({!field f='id' v=‘6239046,13026192}), 0, 0, 1, 27.1705)" When  Boost Paramusesbq, similar logic applies. When Boost Param/boostingParamuses “boost”, it works with both “query-param” and “query-parser”. | 
| Rollup Field rollupField | Indicates which aggregated signal document field the boost parameter will use for the final boosting. It works in combination with the Solr Field to Boost On/ boostIdfield.  This should be set to the field in the aggregated signal collection that stores the doc list that is aggregated as one record. By default it’s set todoc_id_s. | 
| Rollup Weight Field rollupWeightField | Indicates the final boost weight used to calculate the new score for docs retrieved by the main query.  Similar to Rollup Field/ rollupFieldabove, this should be set to the field in the aggregated signal collection that stores the final weight that was calculated. By default it’sweight_d. | 
| Final Boost Weight Expression weightExpression | Calculates the final weight using the weight and score retrieved from the COLLECTION_NAME_signals_aggrcollection.  The default value ismath:log(weight_d + 1) + 10 \* math:log(score+1). | 
Solr query parameters
These parameters are used in the Solr Query parameters/queryParams field for retrieving signal aggregation docs from the COLLECTION_NAME_signals_aggr collection. These Solr query params will affect which aggregated signals are used for producing the boosting parameter on the main query.
| qf=query_t | Defines which field to query. In the default case, the query searches on the query_tfield of aggregated signal docs. | 
| pf=query_t^50 | Boosts docs within the set of retrieved docs using phrase matching. | 
| pf2=query_t^20 | pf2is similar topf; the difference is thatpf2works on bigram phrases. | 
| pf3=query_t^10 | pf3is similar topf; the difference is thatpf3works on trigram phrases. | 
FAQs
If there isfq in the main query, how is it matched with the correct aggregated signal?
In this case, you need to use the lw.rec.fq query parameter in the main query. lw.rec.fq can be parsed by the Boost with Signals stage, and therefore the filters specified in it can be added to the Solr query that is retrieving the aggregated signals.
For example, if we have filter query param fq=format:CD&fq=name:Latin, this needs to be translated into lw.rec.fq=filters_s:"format:cd $ name:latin". Values must be lowercase. The final main query should be:
If there are multiple 
fq values (for example, format:cd and name:latin), they are ordered alphabetically as strings and joined with ”  with a space on each side). In the example, "format:cd $ name:latin".collection parameter in the Solr Query Parameters section.

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:Configuration
When entering configuration values in the UI, use unescaped characters, such as 
\t for the tab character. When entering configuration values in the API, use escaped characters, such as \\t for the tab character.