[[query-dsl-template-query]] === Template Query coming[1.1.0] A query that accepts a query template and a map of key/value pairs to fill in template parameters. [source,js] ------------------------------------------ GET _search { "query": { "template": { "query": {"match_{{template}}": {}}, "params" : { "template" : "all" } } } } ------------------------------------------ Alternatively escaping the template works as well: [source,js] ------------------------------------------ GET _search { "query": { "template": { "query": "{\"match_{{template}}\": {}}\"", "params" : { "template" : "all" } } } } ------------------------------------------ You register a template by storing it in the conf/scripts directory of elasticsearch. In order to execute the stored template reference it in the query parameters: [source,js] ------------------------------------------ GET _search { "query": { "template": { "query": "storedTemplate", "params" : { "template" : "all" } } } } ------------------------------------------ Templating is based on Mustache. For simple token substitution all you provide is a query containing some variable that you want to substitute and the actual values: [source,js] ------------------------------------------ GET _search { "query": { "template": { "query": {"match_{{template}}": {}}, "params" : { "template" : "all" } } } } ------------------------------------------ which is then turned into: [source,js] ------------------------------------------ GET _search { "query": { "match_all": {} } } ------------------------------------------ For more information on how Mustache templating and what kind of templating you can do with it check out the [online documentation](http://mustache.github.io/mustache.5.html) of the mustache project.