ElasticSearch的REST APIs 之 索引的模板管理

本文介绍了ElasticSearch 7.7中索引模板的管理,包括新增或修改(Put index template API)、删除(Delete index templates API)、获取信息(Get index templates API)和判断是否存在(Index templates exists API)。内容涵盖API的描述、参数、请求示例以及注意事项,如模板的优先级和版本管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于ES 7.7 英文官方文档

主要内容:

  • 新增或修改索引模板(Put index templates)
  • 删除索引模板(Deltet index templates)
  • 获取索引模板信息(Get index templates)
  • 判断一个模板是否存在(Index templates exists)

1. 新增或修改索引模板(Put index template API)

官方文档

可以参考: https://www.jianshu.com/p/1f67e4436c37

PUT /_template/<index-template>

描述

索引模板, 就是可以在创建新索引时自动应用的settings和mappings。 Elasticsearch通过索引名的匹配(index name pattern)将模板应用于新索引。

索引模板仅在创建索引时起作用,索引模板的修改不会影响已存在的索引。 在创建索引时指定的settings和mappings选项将覆盖与之相匹配的索引模板中的设置。

索引模板中可以写备注

可以在索引模板的body内(花括号内部)任意地方使用c语言风格的块注释(/**/):

# 不能在body的最外面的两个大括号之外写注释, 其他地方随意.
PUT _template/template_1
{
  /* 我这里可以写注释 */
  "index_patterns": ["te*", "bar*"],
  /* 注释2 */
  "settings": {
    /* 注释3 */
    "number_of_shards": 1
  }
}

目前kibana 7.7的web console界面里写代码会提示错误"Bad string", 但是不影响代码执行

索引创建/管理等api的body内目前都不支持写备注

获取索引时, 不会显示之前添加的备注, 怎么办????

路径参数

<index_template>

索引模板名称, 必填.

请求参数

create

(可选, bool) 如果设置为true,则只能新增模板,不能替换/修改已有的模板。默认false,会自动判断是create还是update操作。

order

(可选, integer) 如果一个索引匹配到多个模板, 则这个顺序决定了模板的优先级。数值越大,优先级越高。优先级高的模板的设置会覆盖优先级低的模板里面的配置。es会先合并低优先级的模板设置,最后合并高优先级的模板设置。

master_timeout

(可选,时间单位)连接到主节点的等待超时时间。如果在超时时间已过之前没有响应, 则返回错误。 默认是值 30s。

Request body

index_patterns

(必填, 字符串数组) 通配符表达式的数组

aliases

(可选,

### 创建与管理索引Elasticsearch中,创建新索引可以通过发送HTTP PUT请求来完成。例如要创建名为`my_index`的索引: ```bash PUT /my_index { "settings" : { "number_of_shards" : 1, "number_of_replicas" : 0 } } ``` 为了查看现有索引的信息,可以利用CAT APIs中的`indices`端点[^2]。 ```bash GET _cat/indices?v=true&s=index ``` 上述命令会返回集群内所有索引的状态详情,并按照字母顺序排列这些条目。 对于不再需要使用的索引,则可通过发出DELETE请求将其移除[^3]: ```bash DELETE my_old_index ``` 此操作将永久删除指定名称的索引及其包含的数据记录,请谨慎执行该指令。 ### 使用CAT API获取系统状态 除了用于展示索引列表外,CAT模块还提供了一系列其他功能强大的API接口,可用于监控整个系统的健康状况和其他重要指标。比如想要获得节点概览信息的话,就可以调用如下所示的方法: ```bash GET _cat/nodes?v=true ``` 这能够帮助管理员快速掌握当前运行环境中各个成员的工作情况。 另外还有专门针对特定资源统计用途而设计的功能,像查询分片分配情形就可借助于下面这条语句实现: ```bash GET _cat/shards?v=true ``` 它能清晰地显示出每一个shard副本所处的位置分布状况。 ### 文档的操作指南 当涉及到具体文档级别的CRUD(Create, Read, Update and Delete)行为时,同样依赖REST风格的服务来进行交互处理。这里给出几个典型场景下的实践案例说明。 #### 插入新的文件项 向已存在的集合里追加单篇内容非常简单直观,只需准备好待保存对象的具体结构体形式即可发起POST动作: ```json POST bank/_doc/ { "account_number": 0, "balance": 16623, ... } ``` 注意此处采用的是`_doc`作为默认类型映射,在新版ES版本之后推荐这种做法以简化URL路径设置过程[^1]。 #### 查询已有实体 读取某份材料的内容只需要知道其唯一标识符ID便足以定位目标位置并提取出来供后续分析使用: ```bash GET bank/_doc/idValue ``` 这里的`idValue`应该替换成为实际存储时候自动生成或者手动设定的那个字符串值。 #### 更新部分字段 如果仅需修改某些属性而不影响其余不变的部分,那么PATCH方式是最优解之一;不过目前官方更倾向于支持通过带有脚本逻辑的方式达到相同效果: ```json POST bank/_update/idValue { "script" : { "source": "ctx._source.balance += params.amount", "lang": "painless", "params" : { "amount" : 50 } } } ``` 这段代码片段展示了如何安全有效地调整账户余额数值大小。 #### 移除指定实例 最后关于彻底清除某个项目也是相当容易的事情,只要指明所属库名连同内部编号就能顺利完成任务了: ```bash DELETE bank/_doc/idValue ``` 以上就是围绕着Elasticsearch平台展开的一系列基本技能要点介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值