Elastcisearch:静态模板配置

本文介绍了如何在Elasticsearch中设置静态模板,包括order、template、settings和mappings的用法。模板的order值决定了匹配优先级,template用于指定匹配索引规则,settings涵盖索引配置如分片数和副本数,mappings定义字段数据类型。同时,文章提及了动态映射策略的配置以及查看和删除模板的操作。

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

使用模板可以约束索引中的字段类型。
注意:直接修改mapping的优先级>索引template,以下说明基于elasticsearch-5.1.1版本。

先创建一个静态模板示例

PUT /_template/sys_log
{
  "order": 1,
  "template": "sys_log_*",
  "settings": {
    "number_of_replicas": "0",
    "number_of_shards": "5",
    "index": {
      "refresh_interval": "5s"
    }
  },
  "mappings": {
    "_default_": {
      "dynamic": "strict",
      "properties": {
        "id": {
          "type": "keyword"
        },
        "username": {
          "type": "keyword"
        },
        "interest": {
          "analyzer": "standard",
          "type": "text"
        },
        "dateN": {
          "type": "integer"
        },
        "timestamp": {
          "type": "date"
        }
      }
    }
  },
  "aliases": {
  }
}

order

表示模板的优先级,当一个索引匹配到多个模板时,order值越大匹配优先级越高。order值默认为0

template

设置名称(适用正则表达式),表示命名规则与之匹配的所有索引都会使用此模板,以上例子中,所有名称以sys_log_开头索引都会自动匹配到这个模板。

settings

索引的配置信息,例如分片数、副本数,tranlog同步条件、refresh等

属性说明
number_of_replicas副本数
number_of_shards分片数
index.refresh_intervalfsync频率

mappings

  • _default_ 文档类型,可以根据实际情况自定义。表示对应文档类型下field的数据类型。如果想要一个索引中的所有文档类型都使用这个mappings配置,名称可配置为 _default_

  • dynamic 在索引文档时,对于不在mapping中的field,elastcisearch会使用什么策略进行动态映射,可以通过这个属性进行配置,只可以使用elastcisearch中约定的值,如下

dynamic值说明
true在索引一个文档时,如果文档中有field不在mapping中,会自动映射类型,添加到mapping,并索引该字段
false在索引一个文档时,如果文档中有field不在mapping中,不会添加到mapping,也不会索引该字段,但是会保存下来,在_source可以看到该字段,但该字段不能被搜索
strict在索引一个文档时,如果文档中有field不在mapping中,会直接抛出异常,拒绝索引

查看模板

# 查看所有模板
GET /_template

# 查看具体模板
GET /_template/sys_log

删除模板

DELETE /_template/sys_log
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值