| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 | [[query-dsl-template-query]]=== Template Queryadded[1.1.0]A query that accepts a query template and a map of key/value pairs to fill intemplate parameters.[source,js]------------------------------------------GET /_search{    "query": {        "template": {            "query": {"match_{{template}}": {}},            "params" : {                "template" : "all"            }        }    }}------------------------------------------Alternatively passing the template as an escaped string works as well:[source,js]------------------------------------------GET /_search{    "query": {        "template": {            "query": "{\"match_{{template}}\": {}}\"", <1>            "params" : {                "template" : "all"            }        }    }}------------------------------------------<1> New line characters (`\n`) should be escaped as `\\n` or removed,    and quotes (`"`) should be escaped as `\\"`.You can register a template by storing it in the `config/scripts` directory, in a file using the `.mustache` extension.In order to execute the stored template, reference it by name in the `query`parameter:[source,js]------------------------------------------GET /_search{    "query": {        "template": {            "query": "storedTemplate", <1>            "params" : {                "template" : "all"            }        }    }}------------------------------------------<1> Name of the the query template in `config/scripts/`, i.e., `storedTemplate.mustache`.Templating is based on Mustache. For simple token substitution all you provideis a query containing some variable that you want to substitute and the actualvalues:[source,js]------------------------------------------GET /_search{    "query": {        "template": {            "query": {"match_{{template}}": {}},            "params" : {                "template" : "all"            }        }    }}------------------------------------------which is then turned into:[source,js]------------------------------------------{    "query": {        "match_all": {}    }}------------------------------------------There is also a dedicated `template` endpoint, allows you to template an entire search request.Please see <<search-template>> for more details.
 |