elasticsearch中的模板

Elasticsearch 的模板是一种允许我们定义如何自动创建索引的结构的机制。模板包含了一组规则,当一个新的索引被创建时,这些规则就会被应用于新索引的设置中。

模板的组成

模板通常由三个部分组成:模板名称、模板模式和模板设置。模板名称是模板的标识符,模板模式是一个正则表达式,用于匹配索引名称。模板设置包含有关如何自动创建索引的结构的信息,例如索引的分片和副本数量、分析器和映射设置。

{
  "index_patterns": ["logs-*"],
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 0
  },
  "mappings": {
    "_doc": {
      "properties": {
        "message": { "type": "text" },
        "timestamp": { "type": "date" }
      }
    }
  }
}

在上方示例中,模板的名称未指定,而是根据 index_patterns 字段中的值 logs-* 自动匹配索引名称。settings 字段定义了新创建的索引的默认设置,如副本数和分片数。mappings 字段定义了索引的映射设置,包括 _doc 类型下的字段类型和属性。

Mappings

下方为某模板的mappings

 "mappings" : {
      "dynamic_templates" : [
        {
          "strings_as_long" : {
            "mapping" : {
              "norms" : false,
              "format" : "yyy-MM-dd HH:mm:ss||strict_date_optional_time||epoch_millis",
              "type" : "date"
            },
            "match_mapping_type" : "long",
            "match" : "*_time"
          }
        },
        {
          "strings_as_string" : {
            "mapping" : {
              "norms" : false,
              "format" : "yyy-MM-dd HH:mm:ss||strict_date_optional_time||epoch_millis",
              "type" : "date"
            },
            "match_mapping_type" : "string",
            "match" : "*_time"
          }
        },
        {
          "long_as_keywords" : {
            "mapping" : {
              "norms" : false,
              "type" : "keyword"
            },
            "match_mapping_type" : "long",
            "match" : "*"
          }
        },
        {
          "strings_as_keywords" : {
            "mapping" : {
              "norms" : false,
              "type" : "keyword"
            },
            "match_mapping_type" : "string",
            "match" : "*"
          }
        }
      ]
    }

这是一个 Elasticsearch 索引的映射(mapping)设置,通过动态模板(dynamic templates)的方式,根据字段名和类型,动态地定义了不同类型的字段映射。具体作用如下:

strings_as_long:将所有以 _time 结尾的 long 类型的字段,映射为 Elasticsearch 的日期类型 date,并设置日期格式为 yyy-MM-dd HH:mm:ss||strict_date_optional_time||epoch_millis

strings_as_string:将所有以 _time 结尾的 string 类型的字段,同样映射为 Elasticsearch 的日期类型 date,并设置日期格式为 yyy-MM-dd HH:mm:ss||strict_date_optional_time||epoch_millis

long_as_keywords:将所有 long 类型的字段,映射为 Elasticsearch 的 keyword 类型,即以精确匹配方式进行检索的文本类型。

strings_as_keywords:将所有 string 类型的字段,同样映射为 Elasticsearch 的 keyword 类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值