当前位置:   article > 正文

ElasticSearch 实战:如何使用ES的索引模板(index template)_elasticsearch6 模板使用

elasticsearch6 模板使用

Elasticsearch中,索引模板用于定义一组索引的配置,当新的索引被创建时,如果索引名称符合模板定义的模式(index pattern),那么该模板中的设置将自动应用于新创建的索引。索引模板可以预先定义索引的分片数量、副本数量、映射(mapping)和设置(settings)等信息。以下是如何创建和使用索引模板的步骤:

创建索引模板

PUT /_index_template/template_1
{
  "index_patterns": ["logs-*"], // 匹配索引名称模式
  "template": {
    "settings": {
      "number_of_shards": 5, // 设置索引分片数量
      "number_of_replicas": 1, // 设置副本数量
      "refresh_interval": "5s" // 设置索引刷新间隔
    },
    "mappings": {
      "properties": {
        "timestamp": {
          "type": "date",
          "format": "yyyy-MM-dd HH:mm:ss.SSS"
        },
        "message": {
          "type": "text",
          "analyzer": "standard"
        }
      }
    },
    "aliases": {
      "all_logs": {} // 创建索引别名
    }
  },
  "priority": 1, // 模板优先级,数值越大优先级越高
  "version": 1 // 模板版本,便于后期升级和管理
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

使用索引模板

当新创建一个符合索引模板中定义的index_patterns的索引时,模板中的设置和映射会自动应用到新索引上。例如,如果创建了一个名为logs-2022-03-28的索引,由于其名称符合模板logs-*的模式,因此索引的设置和映射将按照template_1中定义的内容进行初始化

示例:创建索引并观察模板应用效果

# 创建符合模板的索引
PUT logs-2022-03-28/_doc/1
{
  "timestamp": "2022-03-28 12:00:00.000",
  "message": "This is a test log message."
}

# 验证索引的映射和设置是否按模板配置
GET logs-2022-03-28

# 验证索引是否关联了模板定义的别名
GET /_alias/all_logs
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

注意事项:

  • 索引模板的匹配顺序取决于它们的优先级(priority),优先级高的模板会在优先级低的模板之前应用。
  • 如果多个模板匹配到同一个索引,Elasticsearch会按照优先级和创建时间决定最终应用哪个模板。
  • 索引模板可以在任何时候创建、更新或删除,但已创建的索引不受模板后续改动的影响。如果需要更改现有索引的配置,需要直接对索引进行相应操作。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/903704
推荐阅读
相关标签
  

闽ICP备14008679号