Link Search Menu Expand Document Documentation Menu

Render Template

The Render Template API renders a search template as a search query.

Paths and HTTP methods

GET /_render/template
POST /_render/template
GET /_render/template/<id>
POST /_render/template/<id>

Path parameters

The Render Template API supports the following optional path parameter.

Parameter Type Description
id String The ID of the search template to render.

Request body fields

The following options are supported in the request body of the Render Template API.

Parameter Required Type Description
id Conditional String The ID of the search template to render. Is not required if the ID is provided in the path or if an inline template is specified by the source.
params No Object A list of key-value pairs that replace Mustache variables found in the search template. The key-value pairs must exist in the documents being searched.
source Conditional Object An inline search template to render if a search template is not specified. Supports the same parameters as a Search API request and Mustache variables.

Example request

Both of the following request examples use the search template with the template ID play_search_template:

{
  "source": {
    "query": {
      "match": {
        "play_name": "{{play_name}}"
      }
    }
  },
  "params": {
    "play_name": "Henry IV"
  }
}

Render template using template ID

The following example request validates a search template with the ID play_search_template:

POST _render/template
{
  "id": "play_search_template",
  "params": {
    "play_name": "Henry IV"
  }
}

Render template using _source

If you don’t want to use a saved template, or want to test a template before saving, you can test a template with the _source parameter using Mustache variables, as shown in the following example:

{
  "source": {
     "from": "{{from}}{{^from}}0{{/from}}",
     "size": "{{size}}{{^size}}10{{/size}}",
    "query": {
      "match": {
        "play_name": "{{play_name}}"
      }
    }
  },
  "params": {
    "play_name": "Henry IV"
  }
}

Example response

OpenSearch responds with information about the template’s output:

{
  "template_output": {
    "from": "0",
    "size": "10",
    "query": {
      "match": {
        "play_name": "Henry IV"
      }
    }
  }
}
350 characters left

Have a question? .

Want to contribute? or .