美文网首页
index template和dynamic template

index template和dynamic template

作者: 宙斯是只猫 | 来源:发表于2019-07-09 21:32 被阅读0次

index template 和dynamic template都是可以根据规则来指定字段的类型,区别就在于前者指定的是多索引的级别,可以根据索引的名称创建pattern来设置mapping,也可以设置符合pattern的分片等一些设置,后者是单个索引,而dynamic template将mapping的设置又划分的更为细致,比如可以指定copy_to等等,之前线上日志有一个索引的date类型经常报错,主要是打出来的日志存在五花八门的格式,然后使用intex template类型指定了date类型为string,整个世界清静了,logstash在将数据写入es时,又重新生成了一个时间戳,所以对日志排查不会有太大问题.
index template

PUT /_template/template_1
{
    "index_patterns" : ["*"],
    "order" : 0,
    "settings" : {
        "number_of_shards" : 1
    },
    "mappings" : {
        "_source" : { "enabled" : false }
    }
}

PUT /_template/template_2
{
    "index_patterns" : ["te*"],
    "order" : 1,
    "settings" : {
        "number_of_shards" : 1
    },
    "mappings" : {
        "_source" : { "enabled" : true }
    }
}

dynamic template


PUT my_index
{
  "mappings": {
    "dynamic_templates": [
      {
        "full_name": {
          "path_match":   "name.*",
          "path_unmatch": "*.middle",
          "mapping": {
            "type":       "text",
            "copy_to":    "full_name"
          }
        }
      }
    ]
  }
}

PUT my_index/_doc/1
{
  "name": {
    "first":  "John",
    "middle": "Winston",
    "last":   "Lennon"
  }
}


相关文章