The query rewriting module is used to preprocess user queries in order to optimize and drive the user experience (detects facets, add or remove keywords, etc.). This module checks the queries against a list of rules. Each rule is made of a "matching" parameter, and an "actions" list. If the query matches the "matching" pattern then the action is triggered. An optional third part, "precondition", allows to restrict the rules to specific conditions (example: only apply a rule for English documents).
The QEng/SearchFrontEnd/QueryParsing/rewriteRules configuration option is used to store the rules. Each rule is described using the JSON syntax described hereafter.