You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ElasticSearch中_template与_index_template的区别是什么?

Elasticsearch /_template 与 /_index_template 接口的区别与用途

你遇到的查询不到的问题,核心原因是两个接口对应完全独立的两套索引模板体系,你使用的PutIndexTemplateRequest是旧版遗留索引模板的请求类,写入的模板只会存储在/_template对应的存储池里,自然无法通过/_index_template接口查询到。

两类接口的具体用途和区别如下:

1. /_template 接口(遗留索引模板)

这是ES 7.8版本之前就存在的原生索引模板实现,用途是在创建匹配指定名称规则的索引时,自动应用预先定义的settings、mappings、别名配置。
核心特性:

  • 优先级通过order字段控制,多个匹配到同一索引的模板,会按照order值从小到大依次叠加配置,值更高的模板会覆盖低优先级模板的冲突配置
  • 所有配置必须写在同一个模板定义内,不支持拆分复用,多模板存在大量重复配置时维护成本极高
  • 目前ES官方已经将该接口标记为废弃,仅做向下兼容性保留,后续大版本会完全移除,不建议新业务使用

2. /_index_template 接口(可组合索引模板)

这是ES 7.8版本推出的、用于替代遗留模板的新一代索引模板实现,主要解决旧模板配置复用性差、优先级逻辑混乱的问题。
核心特性:

  • 支持将通用的settings、mappings配置拆分封装为独立的组件模板,多个索引模板可以复用同一套组件模板配置,大幅降低重复配置的维护成本
  • 优先级通过priority字段控制,多个匹配到同一索引的模板,仅优先级最高的模板生效,逻辑更清晰
  • 支持更灵活的索引匹配规则,以及内置的全局模板逻辑
  • 是ES官方主推的索引模板实现,后续所有相关新特性都会优先支持该接口

核心差异总结

  • 版本适配:/_template 兼容所有ES历史版本,/_index_template 仅支持ES 7.8及以上版本
  • 复用能力:遗留模板不支持配置拆分复用,可组合模板支持组件模板复用
  • 优先级逻辑:遗留模板用order字段,多匹配模板叠加配置;可组合模板用priority字段,最高优先级模板单独生效
  • 维护状态:遗留模板已废弃,可组合模板是当前及未来的官方标准实现
  • 存储隔离:两类模板的存储完全独立,互不干扰,旧接口创建的模板只能用/_template查询,新接口创建的模板只能用/_index_template查询

如果你需要创建可组合索引模板,可以使用Java客户端的PutComposableIndexTemplateRequest类,创建后即可通过/_index_template接口查询到。


内容的提问来源于stack exchange,提问作者Jordi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 17:24:07