渲染模板
渲染模板 API 通过替换参数而不是执行搜索来预览从 搜索模板 生成的最终查询。
端点
GET /_render/template
POST /_render/template
GET /_render/template/<id>
POST /_render/template/<id>
路径参数
下表列出了可用的路径参数。所有路径参数均为可选。
参数 | 数据类型 | 描述 |
---|---|---|
id | 字符串 | 要渲染的搜索模板的 ID。 |
请求正文字段
下表列出了可用的请求正文字段。
参数 | 必需 | 数据类型 | 描述 |
---|---|---|---|
id | 条件 | 字符串 | 要渲染的搜索模板的 ID。如果路径中提供了 ID,或者由 source 指定了内联模板,则不是必需的。 |
params | 否 | 对象 | 用于替换搜索模板中 Mustache 变量的键值对列表。这些键值对必须存在于正在搜索的文档中。 |
source | 条件 | 对象 | 如果未指定搜索模板,则渲染一个内联搜索模板。支持与 搜索 API 请求和 Mustache 变量相同的参数。 |
请求示例
以下两个请求示例都使用模板 ID 为 play_search_template
的搜索模板
{
"source": {
"query": {
"match": {
"play_name": "{{play_name}}"
}
}
},
"params": {
"play_name": "Henry IV"
}
}
使用模板 ID 渲染模板
以下示例请求验证 ID 为 play_search_template
的搜索模板
POST _render/template
{
"id": "play_search_template",
"params": {
"play_name": "Henry IV"
}
}
使用 _source
渲染模板
如果您不想使用已保存的模板,或者想在保存前测试一个模板,您可以使用 _source
参数和 Mustache 变量来测试模板,如下例所示
{
"source": {
"from": "{{from}}{{^from}}0{{/from}}",
"size": "{{size}}{{^size}}10{{/size}}",
"query": {
"match": {
"play_name": "{{play_name}}"
}
}
},
"params": {
"play_name": "Henry IV"
}
}
示例响应
OpenSearch 返回有关模板输出的信息
{
"template_output": {
"from": "0",
"size": "10",
"query": {
"match": {
"play_name": "Henry IV"
}
}
}
}