Link Search Menu Expand Document Documentation Menu

渲染模板

渲染模板 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"
      }
    }
  }
}
剩余 350 字符

有问题?

想做贡献?