--- title: 'QueryParamOverride: Query pipeline feature' slug: '1491' canonical_url: https://docs.coveo.com/en/1491/ collection: tune-relevance source_format: adoc --- # QueryParamOverride: Query pipeline feature A [query pipeline statement](https://docs.coveo.com/en/236/) expressing the `queryParamOverride` [query pipeline feature](https://docs.coveo.com/en/234/) modifies query parameter values before the search (or [Coveo Machine Learning (Coveo ML)](https://docs.coveo.com/en/188/) [Query Suggestion (QS)](https://docs.coveo.com/en/1015/)) request is processed any further by the Search API. > **Leading practice** > > Typically, a statement expressing the `queryParamOverride` feature should only apply when a certain condition is fulfilled. > > In general, you should ensure that this is the case by associating such a statement, and/or the [query pipeline](https://docs.coveo.com/en/180/) it's defined in, to a global condition. > **Note** > > In the [Coveo Administration Console](https://docs.coveo.com/en/183/), you can manage statements expressing the `queryParamOverride` feature [from the **Query parameters** subtab](https://docs.coveo.com/en/3411#access-the-query-parameters-subtab). The following diagram shows the process of a query being sent to the Search API and the order of execution of query pipeline features. ![Coveo | diagram showing order of execution](https://docs.coveo.com/en/assets/images/coveo-platform/trigger-statements-diagram.svg) ## Syntax Use the following [query pipeline language (QPL)](https://docs.coveo.com/en/235/) syntax to define a statement expressing the `queryParamOverride` feature: ```text override ``` > **Note** > > An override statement can modify only one query parameter at a time. > Adding multiple parameters in a single statement will result in an error, such as: > `Only one parameter can be overridden at a time.` ### `` This is one of the two options: * `query`: modifies parameters in search requests (that is, in GET or POST requests to the `/rest/search/v2` route). * `querySuggest`: modifies parameters in query suggestion requests (that is, in GET or POST requests to the `/rest/search/v2/querySuggest` route). ### `` A parameter-value pair where the parameter is a valid query or query suggestion parameter, and the value is a valid input for that parameter (see [Query parameters](https://docs.coveo.com/en/13#tag/Search-V2/operation/searchUsingPost)). Only one parameter-value combination is supported per override statement. ## Example You create a global condition with the following QPL definition: [example.code] #### **Global condition:** ```text when $context[userRole] is "powerUser" ``` #### In an empty query pipeline named `Testing override`, you create four distinct statements, each expressing the `queryParamOverride` feature, with the following QPL definitions: [example.code] #### **Statement 1** ```text override querySuggest enableWordCompletion: true ``` #### [example.code] #### **Statement 2** ```text override querySuggest count: 3 ``` #### [example.code] #### **Statement 3** ```text override query enableQuerySyntax: true ``` #### [example.code] #### **Statement 4** ```text override query wildcards: true ``` #### You associate these statements to the global condition statement you created before. In a graphical search interface, an end user types in a search box which has been configured to provide [Coveo Machine Learning (Coveo ML)](https://docs.coveo.com/en/188/) query completion suggestions, causing a `querySuggest` request to be sent with a partial [basic query expression](https://docs.coveo.com/en/178/) (`q`) to the Search API on each new keystroke: [example.code] #### **querySuggest payload** ```json { "q": "query pip", "context": { "userRole": "powerUser" } } ``` #### Since the query suggestion operation goes through the `Testing Override` query pipeline and satisfies the global condition, the `querySuggest` override statement is applied. As a result the following things happen: * The query suggestions are ordered by which suggestion best completes the last word being typed by the end user in the search box (because of `enableWordCompletion: true`). * A maximum of three query completion suggestions is returned (because of `count: 3`). [TIP.successful] #### **Successful response - 200 OK** ```json { "completions": [ { "executableConfidence": 1, "expression": "query pipeline", "highlighted": "[query](https://docs.coveo.com/en/231/) {pip}[line]", "score": 12.98498638195693 }, { "executableConfidence": 1, "expression": "query pipeline statement", "highlighted": "[query](https://docs.coveo.com/en/231/) {pip}[line] [statement]", "score": 13.960273930588135 }, { "executableConfidence": 1, "expression": "query pipeline language", "highlighted": "[query](https://docs.coveo.com/en/231/) {pip}[line] [language]", "score": 11.744597776008531 } ] } ``` #### The end user ignores the query completion suggestions, and finally inputs an expression which includes a wildcard character (`*`) and advanced query syntax (`@source==docs.coveo.com`) before submitting the query: [example.code] #### **Query payload** ```json { "context": { "userRole": "powerUser" }, "q": "query pip* @source==docs.coveo.com" } ``` #### Since the query goes through the `Testing Override` query pipeline and satisfies the global condition, the `query` override statement is applied. As a result the following things happen: * The index only return [items](https://docs.coveo.com/en/210/) whose `@source` field value is equal to `docs.coveo.com` (because of `enableQuerySyntax: true`). * The index only return items whose content includes both the `query` keyword and a keyword that starts with `pip` (because of `wildcards: true`). ## Reference The query parameters in this section can be modified when creating query parameter rules. For the list of query parameters that can be used when sending requests to the Search API, see [Query parameters](https://docs.coveo.com/en/13#tag/Search-V2/operation/searchUsingPost). ### `aq` (string) The advanced query expression, typically generated by code, such as when toggling facet values. > **Note** > > When logging a usage analytics event for a query, the `advancedQuery` field of that event should be set to the `aq` value of the corresponding query (for reporting purposes). **Examples** * You want to ignore existing advanced queries containing a query ranking expression (QRE). ** **Parameter type to override**: `Query` ** **Parameter name**: `aq` ** **Parameter value type**: `String` ** **Parameter value**: ** Condition: `Advanced query contains QRE` (see [Create a condition](https://docs.coveo.com/en/1959#create-a-condition)) * You want to avoid content from being filtered by a certain facet selection. The **Source** facet of your search interface contains the **Tutorial video** and **Tutorial web** facet values, which both lead to complementary content. ** **Parameter type to override**: `Query` ** **Parameter name**: `aq` ** **Parameter value type**: `String` ** **Parameter value**: `(@source=="Tutorial video" OR @source=="Tutorial web")` ** **Condition**: `Query contains Tutorial` (see [Create a condition](https://docs.coveo.com/en/1959#create-a-condition)) ### `childField` (string) The `@`-prefixed name of the field to use to be able to identify an item as a child of another item in a [folded query result](https://docs.coveo.com/en/1466/). Use a field whose value points to the [`parentField`](#parentfield-string) value of the intended parent. Whenever an item is a child of another item, its `childField` value must be identical to the `parentField` value of that other item. > **Notes** > > * In the index, the values of the `childField` must only contain alphanumeric characters. > Using a `childField` whose values contain non-indexable characters, such as underscores, will make folding fail. > > * The values of the `childField` must contain 60 characters or less (60 being the default maximum of characters for a word in the index). ### `commerce.catalogId` (string) The unique identifier of the catalog entity to use for the query in a Coveo for Commerce solution. ### `cq` (string) The constant query expression, typically populated with expressions that must apply to all queries sent from a specific search interface (for example, from a specific tab). Once evaluated, the result sets of those expressions are kept in a special cache. > **Tip** > > Avoid including dynamic content in the constant query expression. > Otherwise you risk filling up the cache with useless data, which can have a negative impact on performance. > **Notes** > > * Other parts of the query expression can also benefit from the index cache (see [`maximumAge`](#maximumage-integer-int32)). > However, using the constant query expression allows you to explicitly cache specific result sets. > > * Temporal keywords (`now`, `today`, `yesterday`) in the constant query expression are only re-evaluated once every three to four minutes. > Therefore, you should avoid basing `cq` expressions on temporal keywords if you require split second accuracy. **Example** When your employees perform queries, you want to show results that are internal. * **Parameter type to override**: `Query` * **Parameter name**: `cq` * **Parameter value type**: `String` * **Parameter value**: `@targetAudience==internal` * **Condition** (see [Create a condition](https://docs.coveo.com/en/1959#create-a-condition)): ** `Context` ** Key: `userGroup` ** Value: `employee` ### `debug` (Boolean) Whether to force a successful response to include debug information. **Default**: `false` > **Notes** > > * Debug information can only appear in responses in the JSON format. > > * Avoid setting this parameter to `true` in your production environment, as it has a negative impact on query performance. ### `dq` (string) The disjunction query expression, typically populated by Coveo ML ART models to ensure that relevant items are included in the query results. This expression is merged with the other parts of the query expression using the `OR` operator. Therefore, the resulting query expression is `((q AND aq) OR dq) AND cq`. For further information on query expressions, see [About the query expression](https://docs.coveo.com/en/2830/). > **Important** > > This parameter overrides the generated disjunction query expression (`dq`). > Therefore, add a condition for your rule to be applied. ### `enableDidYouMean` (Boolean) Whether to enable the [_Did You Mean_ feature](https://docs.coveo.com/en/1810/) of the index, which populates the `queryCorrections` property of a successful response with keyword correction suggestions. **Default**: `false` > **Notes** > > * The _Did You Mean_ feature only processes the basic query expression (see the [`q` parameter](#q-string)). > > * The _Did You Mean_ feature won't return corrections when the query is processed by Coveo ML ART model whose Intelligent Term Detection (ITD) feature is enabled. > > * When both `enableDidYouMean` and `enableMLDidYouMean` parameters are set to `true`, the output of both features will appear in the `queryCorrections` array. ### `enableDuplicateFiltering` (Boolean) Whether to filter out duplicates, so that items resembling one another only appear once in the query results. **Default**: `false` > **Notes** > > * Two items must be at least 85% similar to one another to be considered duplicates. > > * When duplicates are found, only the higher-ranked item of the two is kept in the result set. > > * Enabling this feature can make the total result count less precise, since only results up to those being retrieved (see the [`firstResult`](#firstresult-integer-int32) and [`numberOfResults`](#numberofresults-integer-int32) parameters) are submitted to duplicate filtering. ### `enableMLDidYouMean` (Boolean) > **Important** > > This feature is in an experimental state. Whether to enable the Coveo ML query suggestions _Did You Mean_ feature, which populates the `queryCorrections` property of a successful response with keyword correction suggestions. **Default**: `false` > **Notes** > > * The _Did You Mean_ feature only processes the basic query expression (see the [`q`](#q-string) parameter). > > * When both the `enableDidYouMean` and [`enableMLDidYouMean`](#enablemldidyoumean-boolean) parameters are set to `true`, the output of both features will appear in the `queryCorrections` array. ### `enableQuerySyntax` (Boolean) Whether to interpret advanced Coveo query syntax as such in the basic query expression (see the [`q`](#q-string) and [`lowercaseOperators`](#lowercaseoperators-boolean) parameters). **Default**: `true` > **Note** > > While the `enableQuerySyntax` parameter is set to `true` at the API level, certain search interface libraries, such as Atomic, may override this default and set the parameter to `false`, which disables the advanced query syntax. > This means that certain operators might not function as expected unless `enableQuerySyntax` is explicitly set to `true`. **Examples** * After analyzing usage analytics data, you noticed that special characters such as `(`, `[`, `]`, `{`, `}`, `-`, and `&` created content gaps. Therefore, you set `enableQuerySyntax` to `false` so the index interprets those special characters as spaces. ** **Parameter type to override**: `Query` ** **Parameter name**: `enableQuerySyntax` ** **Parameter value type**: `Boolean` ** **Parameter value**: `false` * You want to ignore operators for your clients, but not for your internal users, so you set a condition on the identity. ** **Parameter type to override**: `Query` ** **Parameter name**: `enableQuerySyntax` ** **Parameter value type**: `Boolean` ** **Parameter value**: `false` ** Condition: `Identity is anonymous` (see [Create a condition](https://docs.coveo.com/en/1959#create-a-condition)) * You want to ignore all operators but still want to use `AND`, `OR`, and `NOT`, so you can add a condition that ignores the rule if the operator is in the query. ** **Parameter type to override**: `Query` ** **Parameter name**: `enableQuerySyntax` ** **Parameter value type**: `Boolean` ** **Parameter value**: `false` ** **Condition**: `Query doesn't contain "and" or Query doesn't contain "or" or Query doesn't contain "not"` (see [Create a condition](https://docs.coveo.com/en/1959#create-a-condition)) ### Enable term permutations Whether to enable the term permutations feature in the query pipeline. **Default**: `false` When set to `true`, the term permutations feature expands the keywords used in the user query to search for different variations of the same query by using casing variations and character transitions. **Example** In your Coveo index, you have support articles and user manuals that relate to the **TP 213 v4** product. You realize that your clients and support agents are often querying `TP213v4` to find related information. This results in some of your users not finding the information they're looking for. By setting the **Enable term permutations** parameter to `true`, you ensure that all usage variations of `TP213v4` are taken into account when queried. Therefore, when searching for `TP213v4`, a user will obtain a query similar to the following: ```text TP213v4 OR ((TP 213 v4) OR (TP213 V4) OR (tp2 13 V4)) ``` > **Important** > > The term permutations feature expands every keyword used in a query. > Since each queried keyword is affected by the feature, this may lead to query performance issues. > Therefore, this feature should only be used when necessary and under certain [conditions](https://docs.coveo.com/en/1959/). ### Excerpt length The maximum length of result excerpts (in number of characters). An _excerpt_ is a segmented text generated at query time by the index from the body of an item. When a query is performed, the excerpt yields relevant item body sections in which the queried terms are highlighted. An excerpt includes the most relevant sentences in which the queried keywords appear, in the order in which they appear in the item, up to the specified number of characters. **Default**: `200` > **Note** > > The maximum length you set using this parameter also applies to retrieved first sentences, if those are included in the results (see the [`retrieveFirstSentences`](#retrievefirstsentences-boolean) parameter). **Example** When your clients are on a specific tab, you want to show longer descriptions than in the other tabs. * **Parameter type to override**: `Query` * **Parameter name**: `excerptLength` * **Parameter value type**: `Number` * **Parameter value**: `500` * **Condition**: `Tab is Books` (see [Create a condition](https://docs.coveo.com/en/1959#create-a-condition)) ### Filter field The `@`-prefixed name of the field to use to group items into distinct [folded query results](https://docs.coveo.com/en/1466/). Use a field whose value is identical for all items to group under the same folded query result. ### `filterFieldRange` (integer [int32]) The maximum number of items to include in the `childResults` array of a [folded query result](https://docs.coveo.com/en/1466/). **Default**: `5` ### `firstResult` (integer [int32]) The 0-based position of the first result to return in the non-paginated result set. Along with the [`numberOfResults`](#numberofresults-integer-int32) parameter, this allows you to retrieve a specific page of result items. **Default**: `0` ### `forwardLanguageToCoveoIndex` (Boolean) Controls whether the language of the user's interface is used when interpreting the query. **Default**: `false` When set to `true`, the language of the user's interface is included in the search request sent to the Coveo index. This means that the interpretation and processing of the user's query are influenced by their language setting, potentially enhancing the relevance of the returned search results. It can be particularly useful for [stem expansion](https://docs.coveo.com/en/1576#stem-expansions). > **Tip** > > This parameter should be used in combination with the `locale` request parameter. **Example** If a user's interface is in French and `forwardLanguageToCoveoIndex` is set to `true`, the language information is included in the search request sent to the Coveo index. French content is therefore prioritized in the search results, making the results more relevant to the user's language preference. ### `index` (string) The identifier of the index mirror to forward the request to. If you don't specify an index (or #indextoken-string[`indexToken`]) value, any index mirror could be used. > **Note** > > Passing an `index` (or `indexToken`) value has no effect when the results of a specific request can be returned from cache (see [`maximumAge`](#maximumage-integer-int32)). ### `indexToken` (string) The identifier of the index mirror to forward the request to. If you don't specify an `indexToken` (or [`index`](#index-string)) value, any index mirror could be used. > **Note** > > Passing an `indexToken` (or `index`) value has no effect when the results of a specific request can be returned from the cache (see [`maximumAge`](#maximumage-integer-int32)). ### `isGuestUser` (Boolean) Whether the current user is anonymous. Coveo ML models may use this information to provide contextually relevant output. > **Note** > > When logging a usage analytics event for a query, the `anonymous` field of that event should be set to the `isGuestUser` value of the query. ### `locale` (string) The locale of the current user. Must comply with IETF's [BCP 47](https://www.rfc-editor.org/rfc/bcp/bcp47.txt) definition. Coveo ML models use this information to provide contextually relevant output. Moreover, this information can be referred to in query expressions and QPL statements by using the `$locale` object. > **Note** > > When logging a usage analytics event, the `language` field of that event should match the language part of the locale value of the query (for example, `en-US` in `locale` becomes `en` in `language`). ### `logicalIndex` (string) The identifier for a logical group of indexes that have been configured to include items from the same sources. If you don't specify a `logicalIndex` value, the default grouping will be used, typically including all indexes. **Default**: "default" ### `lowercaseOperators` (Boolean) Whether to treat the `AND`, `NEAR`, `NOT`, and `OR` keywords in the basic query expression (see the [`q`](#q-string) parameter) as Coveo query syntax operators, even if those keywords are in lowercase. > **Note** > > Setting this parameter to `true` has no effect unless you also set the [`enableQuerySyntax`](#enablequerysyntax-boolean) parameter to `true`. > For instance, if you set both this parameter and the `enableQuerySyntax` parameter to `true`, the index interprets the `near` keyword in the basic query expression `service center near me` as the `NEAR` Coveo query syntax operator. **Default**: `false` **Example** You want to allow customer to use the `AND` and `OR` operators even if they write them in lowercase. When you ignore the operators (`enableQuerySyntax` set to `false`), you must add a condition to exclude `AND` and `OR`. Otherwise, operators won't be considered. * **Parameter type to override**: `Query` * **Parameter name**: `lowercaseOperators` * **Parameter value type**: `Boolean` * **Parameter value**: `true` ### `lq` (string) The large query expression, typically populated with a case description, long textual query, or any other form of text that can help refine a query. The Coveo ML Intelligent Term Detection (ITD) feature can extract relevant keywords from the large query expression and inject those keywords in the basic query expression (see the [`q`](#q-string) parameter). ### `lqPartialMatchKeywords` (integer [int32]) The minimum number of keywords that need to be present in the large query expression (see the [`lq`](#lq-string) parameter) to convert it to a partial match expression in case the Coveo ML Intelligent Term Detection (ITD) feature can't extract relevant keywords from the large query expression. For further information on query expressions, see [About the query expression](https://docs.coveo.com/en/2830/). **Default**: `5` > **Note** > > This parameter applies as a fallback setting when no Coveo ML ART model is available in the query pipeline to process a query that contains a non-null large query expression (`lq`). ### `lqPartialMatchMaxKeywords` (integer [int32]) The maximum number of keywords from the large query expression (see the `lq` parameter) that will be included in the partial match expression in case the Coveo ML Intelligent Term Detection (ITD) feature can't extract relevant keywords from the large query expression. **Default**: `100` > **Notes** > > * This parameter applies as a fallback setting when no Coveo ML ART model is available in the query pipeline to process a query that contains a non-null large query expression (`lq`). > > * Setting this parameter to a high value can negatively impact the performance of queries, while setting it too low can produce less relevant results. ### `lqPartialMatchThreshold` (string) An absolute or relative value indicating the minimum number of partial match expression keywords an item must contain to match the large query expression in case the Coveo ML Intelligent Term Detection (ITD) feature can't extract relevant keywords from the large query expression. **Default**: `50%` If specified, the `lqPartialMatchThreshold` value must be one of the following: * A 32-bit unsigned integer (for example, `3`) * A percentage value between 0% and 100% (for example, `75%`) * An empty string (`""`) * The `all` string > **Notes** > > * This parameter applies when no Coveo ML ART model is available in the query pipeline to process a query that contains a non-null large query expression (`lq`). > > * The `""` and `all` values are both equivalent to `100%`. ### `maximumAge` (integer [int32]) The maximum age (in milliseconds) of the cached query results. If the results of a specific request are available in the cache, and if those results are no older than the `maximumAge` value, the service returns those results rather than forwarding a new query to the index. Such cache hits improve responsiveness but still count as queries in your queries per month (QPM) count. **Default**: `-1` > **Note** > > This parameter is automatically overridden when `staticQuery` is set to `true`. ### `maximumTimeoutMs` (integer [int32]) The maximum time (in milliseconds) limit for the query to execute before timing out. ### `mlDidYouMeanMaxCandidates` (integer [int32]) The maximum number of Coveo ML _Did You Mean_ candidates to request from the QS model. **Default**: `3` ### `mlDidYouMeanMinScore` (number [double]) The minimum score a query suggestion may have to be allowed as a candidate for the Coveo ML query suggestions _Did You Mean_ feature. For best results, value should typically be in range [`0.8`, `2`]. **Default**: `1.0` ### `mlDidYouMeanUseFacetCount` (Boolean) Whether to use facet counts for the Coveo ML _Did You Mean_ feature. **Default**: `false` ### `numberOfResults` (integer [int32]) The number of results to return. Along with the [`firstResult`](#firstresult-integer-int32) parameter, this allows you to retrieve a specific page of result items. This parameter also defines the maximum number of results which can be returned by the Coveo ML [Content Recommendations (CR)](https://docs.coveo.com/en/3387/) and [Product Recommendations (PR)](https://docs.coveo.com/en/lacb0109/) features. **Default**: `10` > **Note** > > The maximum `numberOfResults` value depends on the index settings of your [Coveo organization](https://docs.coveo.com/en/185/). > By default, a Coveo index can return a maximum of 2,000 items per query. > **Important** > > Don't set this parameter in the query pipeline if your search interface contains a [`Pager`](https://coveo.github.io/search-ui/components/pager.html) component. Otherwise, pagination won't work correctly in your search interface. **Example** When your clients search `find a store`, you'll want the results returned to only be the articles that help them find stores. You also need a featured result rule on that specific article for the same query (see [Manage featured result rules](https://docs.coveo.com/en/3376/)). * **Parameter type to override**: `Query` * **Parameter name**: `numberOfResults` * **Parameter value type**: `String` * **Parameter value**: `1` ### `parentField` (string) The `@`-prefixed name of the field to use to be able to identify an item as a parent in a [folded query result](https://docs.coveo.com/en/1466/). Use a field whose value can uniquely identify each item. All items whose [`childField`](#childfield-string)` value is identical to the `parentField` value of another item are considered children of that other item. > **Notes** > > * In the index, the values of the `parentField` must only contain alphanumeric characters. > Using a [`childField`](#childfield-string) whose values contain non-indexable characters, such as underscores, will make folding fail. > > * The values of the `parentField` must contain 60 characters or less (60 being the default maximum of characters for a word in the index). ### `partialMatch` (Boolean) Whether to convert a basic expression containing at least [`partialMatchKeywords`](#partialmatchkeywords-integer-int32) to a partial match expression, so that any item containing at least [`partialMatchThreshold`](#partialmatchthreshold-string) of those keywords will match the expression. If you don't set this parameter to `true`, an item must contain all the basic expression keywords to match the expression. See [Leverage the partial match feature](https://docs.coveo.com/en/414/) to learn how to leverage this feature. **Default**: `false` > **Notes** > > * This feature only applies to the basic expression (`q`) of a query, and to the basic `queryOverride` of its Group By operations. > > * When the `enableQuerySyntax` parameter is set to `true`, this feature has no effect on a basic expression containing advanced Coveo query syntax (field expressions, operators, etc.). ### `partialMatchKeywords` (integer [int32]) The minimum number of keywords that needs to be present in a basic expression to convert it to a partial match expression. **Default**: `5` > **Notes** > > * This parameter has no effect unless the `partialMatch` parameter is set to `true`. > > * Repeated keywords in a basic expression count as a single keyword. > > * Thesaurus expansions in a basic expression count towards the `partialMatchKeywords` count. > > * Stemming expansions don't count towards the `partialMatchKeywords` count. See [Leverage the partial match feature](https://docs.coveo.com/en/414/) to learn how to leverage this feature. ### `partialMatchThreshold` (string) An absolute or relative value indicating the minimum number (rounded up) of partial match expression keywords an item must contain to match the expression. If specified, the `partialMatchThreshold` value must be either of the following: * A 32-bits unsigned integer (for example, `3`) * A percentage value between 0% and 100% (for example, `75%`) * The empty string (`""`) * The `all` string **Default**: `50%` > **Notes** > > * This parameter has no effect unless the [`partialMatch`](#partialmatch-boolean) parameter is set to `true`. > > * A keyword and its stemming expansions count as a single keyword when evaluating whether an item meets the `partialMatchThreshold`. > > * The `""` and the `all` value are both equivalent to 100%. See [Leverage the partial match feature](https://docs.coveo.com/en/414/) to learn how to leverage this feature. ### `q` (string) The basic query expression, typically the keywords entered by the end user in a query box. For further information on query expressions, see [About the query expression](https://docs.coveo.com/en/2830/). > **Note** > > When logging a usage analytics event for a query, the `queryText` field of that event should be set to the `q` value of the corresponding query. > **Important** > > This parameter overrides the query expression that the user enters in the search box. > Therefore, add a condition for your rule to be applied. ### `queryCorrection.enabled` (Boolean) Whether to enable the [Query correction feature](https://docs.coveo.com/en/1810/) to correct misspelled keywords or to suggest alternatives. ### `queryCorrection.options.automaticallyCorrect` (string) Whether to automatically apply or suggest keyword corrections to the query expression. > **Note** > > The `queryCorrection.enabled` parameter must be set to `true` for this parameter to be effective. ### `questionMark` (Boolean) Whether to enable the question mark character (`?`) in the wildcard feature of the index to expand basic expression keywords (see the `q` parameter) containing the question mark character (`?`) to the possible matching keywords. See [Using wildcards in queries](https://docs.coveo.com/en/1580/) for the complete parameter definition. **Default**: `false` > **Note** > > Setting this parameter to `true` has no effect unless you also set the `wildcards` parameter to `true`. **Example** You want to allow clients to use the `?` wildcard, especially since you set operators to be ignored ([`enableQuerySyntax`](#enablequerysyntax-boolean) is set to `false`). You also set the [`wildcards`](#wildcards-boolean) parameter to `true`, which is required for the `questionMark` parameter to be effective. * **Parameter type to override**: `Query` * **Parameter name**: `questionMark` * **Parameter value type**: `Boolean` * **Parameter value**: `true` ### `recommendation` (string) The recommendation interface identifier from which the query originates. ### `retrieveFirstSentences` (Boolean) Whether to include the first sentences of textual items in the query results. First sentences are typically useful when rendering result items such as emails, since the first few sentences of these kinds of items are often more relevant than a contextually generated excerpt (see the [`excerptLength`](#excerpt-length) parameter). **Default**: `false` > **Note** > > The maximum length of the retrieved sentences (in number of characters) is determined by the value of the `excerptLength` parameter. **Example** You want to always show the first sentence of items. This sentence will be truncated if longer than the excerpt. If the sentence is short (for example, title of an email), the rest of the normal excerpt will be shown until the `excerptLength` is reached. * **Parameter type to override**: `Query` * **Parameter name**: `retrieveFirstSentences` * **Parameter value type**: `Boolean` * **Parameter value**: `true` * **Condition**: `Query is Bulletin` (see [Create a condition](https://docs.coveo.com/en/1959#create-a-condition)) ### `searchHub` (string) The first level of origin of the request, typically the identifier of the graphical search interface from which the request originates. Coveo ML models use this information to provide contextually relevant output. > **Notes** > > * This parameter will be overridden if the search request is authenticated by a [search token](https://docs.coveo.com/en/1346/) that enforces a specific pipeline, or a `searchHub` that routes queries to a specific pipeline via a query pipeline condition. > > * When logging a usage analytics event for a query, the `originLevel1` field of that event should be set to the value of the `searchHub` search request parameter. ### `sortCriteria` (string) The criteria to use for sorting the query results. Allowed values: * **Relevance** (default): Uses standard index ranking factors (adjacency, TDIDF, etc.) and custom ranking expressions (QREs and QRFs) to compute a ranking score for each query result item, and sorts the query results by descending score value. **Example** You're managing a knowledge base for new employees. By selecting **Relevance**, you ensure that content such as training materials and onboarding guides are displayed at the top of the search results while still considering other factors such as the number of views and the last modified date. * **Ranking expression**: Uses only custom ranking expressions (QREs and QRFs) to compute a ranking score for each query result item, and sorts the query results by descending score value. **Example** Your e-commerce site, _Barca Sport_, carries a collection of premium soccer cleats that you want to promote. You've already created a ranking expression rule that boosts the score of this item by `100`. By selecting **Ranking expression** as the sort criteria, you ensure that other ranking factors are ignored, and that the premium soccer cleats are displayed at the top of the search results. * **Specific fields**: Sort using the value of a specific sortable field. **Example** Your e-commerce site, _Barca Sport_, offers a wide range of products. When setting the Sort criteria, you select **Specific fields**, first by selecting `date` in descending order (showing the newest items first), and then `product` in ascending order (alphabetically organizing products with the same release date). For a query like `running shoes`, the newest shoes are displayed first. If multiple shoes were added on the same date, they're listed alphabetically. > **Notes** > > * You can specify a list of sort criteria by combining several specific fields. > > ![Sort criteria panel | Coveo](:https://docs.coveo.com/en/assets/images/tune-relevance/sort-criteria-panel.png) > > You can specify up to ten fields in the Sort criteria parameter. > > * You need additional privileges to view fields in the index to be able to leverage the **Specific fields** option (see the [Required privileges](https://docs.coveo.com/en/1833#required-privileges) section of the **Manage fields** article). ### `staticQuery` (Boolean) Whether to execute this query in a way that doesn't count against the allowed number of queries per month (QPM) of a [Coveo organization](https://docs.coveo.com/en/185/), but may produce cached or outdated query results (see [Rendering static content using persistent queries](https://docs.coveo.com/en/1009/)). **Default**: `false` > **Note** > > Setting this parameter to `true` overwrites the [`maximumAge`](#maximumage-integer-int32) parameter value for this query. ### `summaryLength` (integer [int32]) The length of the automatically generated item summary. The Coveo Platform uses a linguistic algorithm that relies on term frequency and proximity to generate an item summary made of sentences identified to be the most important ones in the item. This summary is generated independently from the query, as opposed to a result item excerpt, which is generated based on query keywords. **Default**: `0` ### `tab` (string) The second level of origin of the request, typically the identifier of the selected tab in the graphical search interface from which the request originates. Coveo ML models use this information to provide contextually relevant output. > **Note** > > When logging a usage analytics event for a query, the `originLevel2` field of that event should be set to the tab value of the query (or to the default string, if no tab value was specified in the query). ### `wildcards` (Boolean) Whether to enable the wildcards feature of the index in order to expand basic expression keywords (see the [`q`](#q-string) parameter) containing wildcard characters (`*`) to the possible matching keywords (see [Using wildcards in queries](https://docs.coveo.com/en/1580/)). **Default**: `false` **Example** You want to allow your clients to use wildcards (`*`, `?`), especially since you set operators to be ignored (`enableQuerySyntax` set to `false`). * **Parameter type to override**: `Query` * **Parameter name**: `wildcards` * **Parameter value type**: `Boolean` * **Parameter value**: `true` ### Query Suggest parameters The Query Suggest parameters listed in this section are those that can be defined in the Swagger UI when you use the Query Suggest endpoint. For the complete list of available query parameters, see [QS parameters](https://docs.coveo.com/en/13#tag/Search-V2/operation/querySuggestGet). #### `debug` (Boolean) See [`debug`](https://docs.coveo.com/en/13#operation/querySuggestGet-count) for the complete parameter definition. #### `enableWordCompletion` (Boolean) See [`enableWordCompletion`](https://docs.coveo.com/en/13#operation/querySuggestGet-enableWordCompletion) for the complete parameter definition. #### `locale` (string) > **Important** > > This parameter override has been moved from Query suggest parameters and can now be leveraged in the [Query Suggestion model association](https://docs.coveo.com/en/l1mf0321#locale-string). See [`locale`](https://docs.coveo.com/en/13#operation/querySuggestGet-locale) for the complete parameter definition. #### `q` (string) See [`q`](https://docs.coveo.com/en/13#operation/querySuggestGet-q) for the complete parameter definition. > **Important** > > This parameter overrides the query expression that the user enters in the search box. > Therefore, add a condition for your rule to be applied. #### `searchHub` (string) See [`searchHub`](https://docs.coveo.com/en/13#operation/querySuggestGet-searchHub) for the complete parameter definition. #### `tab` (string) See [`tab`](https://docs.coveo.com/en/13#operation/querySuggestGet-tab) for the complete parameter definition. ### Unsupported parameters The following parameters are NOT supported: * `actionsHistory` * `analytics` * `categoryFacets` * `commerce` * `context` * `dictionaryFieldContext` * `disableQuerySyntax` > **Important - Deprecated parameter** > > This parameter is exposed for backward compatibility reasons. Use the `enableQuerySyntax` parameter instead. * `facets` * `facetOptions` * `fieldsToExclude` * `fieldsToInclude` * `groupBy` * `mlParameters` * `pipeline` * `queryFunctions` * `sortField` > **Important - Deprecated parameter** > > This parameter is exposed for backward compatibility reasons. Use the `sortCriteria` parameter along with the `@[field] ascending/@[field] descending` syntax instead. * `userActions` ### QPL syntax Use the following [query pipeline language (QPL)](https://docs.coveo.com/en/235/) syntax to define a statement expressing the `queryParamOverride` feature: ```text override ``` #### `` This is one of the two options: * `query`: modifies parameters in search requests (that is, in GET or POST requests to the `/rest/search/v2` route). * `querySuggest`: modifies parameters in query suggestion requests (that is, in GET or POST requests to the `/rest/search/v2/querySuggest` route). #### `` A comma-separated list of parameter-value pairs, where each parameter is a valid query/query suggestion parameter and each value must be a valid value for the specified query/query suggestion parameter (see [Query parameters](https://docs.coveo.com/en/13#tag/Search-V2/operation/searchUsingGet)).