ElasticSearch索引模板(template)操作:创建、查询、修改、删除

官方文档链接:https://www.elastic.co/guide/en/elasticsearch/reference/6.6/indices-templates.html

一:概述

可以按下面几种方式理解索引模板:

  1. 避免每次在创建索引库的时候,都需要手工指定每个索引库的配置信息索引可以使用索引模板(index template)进行创建,在新建索引时需要进行模板设置包括settings和mappings,通过模式匹配可使多个索引重复使用一个模板

  2. 将已经创建好的某个索引的参数设置(settings)和索引映射(mapping)保存下来作为模板, 在创建新索引时, 指定要使用的模板名, 就可以直接重用已经定义好的模板中的设置和映射.

  3. 注意

    • 模板仅在创建索引时应用。更改模板不会影响现有索引。使用创建索引 API 时,作为创建索引调用的一部分定义的设置/映射将优先于模板中定义的任何匹配设置/映射。
    • 直接修改mapping的优先级 > 索引模板中的设置;
  4. 索引模板一般与索引别名一起使用

二:查看索引模板

2.1 查看所有的模板

# 查看所有的模板内容
GET _cat/templates?v&h=name

在这里插入图片描述

2.2 查看与通配符相匹配的模板

GET _cat/templates/l*?v&h=name

在这里插入图片描述

2.3 查看多个模板

GET _template/logstash,ilm-history

在这里插入图片描述

2.4 查看指定的模板信息

# 查看模板
GET _template/模板名称

在这里插入图片描述

2.5 索引模板的具体说明

{
  "logstash" : {
    "order" : 0,
    "version" : 60001,
    "index_patterns" : [
      "logstash-*"
    ],
    //  settings: 指定index的配置信息, 比如分片数、副本数, tranlog同步条件、refresh策略等信息
    "settings" : {
      "index" : {
      // 分片数量, 可以定义其他配置项
        "number_of_shards" : "1",
        "refresh_interval" : "5s"
      }
    },
    //mappings: 指定index的内部构建信息, 主要有
    "mappings" : {
      "dynamic_templates" : [
        {
          "message_field" : {
            "path_match" : "message",
            "mapping" : {
              "norms" : false,
              "type" : "text"
            },
            "match_mapping_type" : "string"
          }
        },
        {
          "string_fields" : {
            "mapping" : {
              "norms" : false,
              "type" : "text",
              "fields" : {
                "keyword" : {
                  "ignore_above" : 256,
                  "type" : "keyword"
                }
              }
            },
            "match_mapping_type" : "string",
            "match" : "*"
          }
        }
      ],
      //properties: 最重要的配置, 是对索引结构和文档字段的设置。
      //字段的映射
      "properties" : {
      // 具体的字段映射
        "@timestamp" : {
          "type" : "date"
        },
        "geoip" : {
          "dynamic" : true,
          "properties" : {
            "ip" : {
              "type" : "ip"
            },
            "latitude" : {
              "type" : "half_float"
            },
            "location" : {
              "type" : "geo_point"
            },
            "longitude" : {
              "type" : "half_float"
            }
          }
        },
        "@version" : {
        // keyword类型
          "type" : "keyword"
        }
      }
    },
    // 索引对应的别名
    "aliases" : { }
  }
}

三:新建模板

# 新建模板
PUT _template/test_template
{
 // 模板的权重, 多个模板的时候优先匹配用, 值越大, 权重越高
   "order" : 20,
   // 可以通过"logging_status_*"和"logging_index_*"和"logging_usercenter_*"来适配
   "index_patterns" : [
     "logging_status_*",
     "logging_index_*",
     "logging_usercenter_*"
   ],
   "settings" : {
     "index" : {
     // 20分片数量
       "number_of_shards" : "20",
       //一个副分片
       "number_of_replicas" : "1",
       "refresh_interval" : "10s"
     }
   },
   "mappings" : {
     "dynamic" : "strict",
     // 字段的映射
     "properties" : {
     // 具体的字段映射
       "classMethod" : {
       //keyword类型
         "type" : "keyword"
       },
       "traceId" : {
         "type" : "keyword"
       },
       "responseBody" : {
         "type" : "text"
       },
       "project" : {
         "type" : "keyword"
       },
       "message" : {
         "analyzer" : "ik_max_word",
         "type" : "text"
       },
       "requestParam" : {
         "type" : "text"
       },
       "threadName" : {
         "type" : "keyword"
       },
       "responseCode" : {
         "type" : "keyword"
       },
       "requestTime" : {
         "type" : "keyword"
       },
       "path" : {
         "type" : "keyword"
       },
       "environment" : {
         "type" : "keyword"
       },
       "@timestamp" : {
         "format" : "strict_date_optional_time||epoch_millis",
         "type" : "date"
       },
       "logLevel" : {
         "type" : "keyword"
       },
       "responseDuration" : {
         "type" : "keyword"
       },
       "clientIP" : {
         "type" : "keyword"
       },
       "host" : {
         "type" : "keyword"
       },
       "topic" : {
         "type" : "keyword"
       },
       "serverIP" : {
         "type" : "keyword"
       },
       "loggerName" : {
         "type" : "keyword"
       },
       "requestPath" : {
         "type" : "keyword"
       },
       "timestamp" : {
         "type" : "keyword"
       }
     }
   },
   // 索引对应的别名
   "aliases" : { }
}

在这里插入图片描述
查看模板:创建成功
在这里插入图片描述

四:修改模板中的内容

再次put一次,就可以完成自动修改
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五:删除模板

DELETE _template/模板名称	// 删除模板

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

?abc!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值