前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Elasticsearch Template

Elasticsearch Template

作者头像
程序猿杜小头
发布2022-12-01 21:31:59
1.1K0
发布2022-12-01 21:31:59
举报
文章被收录于专栏:程序猿杜小头程序猿杜小头

Elasticsearch Template

Elasticsearch 7.8引入了一种更为灵活的组合索引模板(composable index template),以代替旧版索引模板(legacy template)。本文所描述的就是新版组合索引模板。

索引模板是一种告诉Elasticsearch在创建索引时如何配置索引的方法。通常,为了更精细地配置索引相关信息,我们会在创建索引之前先行配置一个索引模板;然后在手动创建索引或通过索引文档创建索引时,索引模板将自动应用于该索引。

索引模板有两种类型,索引模板(index template)和组件模板(component template)。组件模板是可重用的构建块,用于配置mapping、setting和alias。组件模板不能直接应用于索引,组件模板只能由索引模板引用,而恰恰只有索引模板才能直接应用于索引。当然,索引模板不一定必须引用组件模板才行,你也可以直接定义mappingsettingalias

1 内置模板

Elasticsearch分别内置了若干索引模板和组件模板,我们可以分别通过GET /_index_templateGET /_component_template REST API查看这些模板内容。索引模板是有优先级属性的,而组件模板没有,为什么呢?因为组件模板只是一种底层可复用的模板构建块,要想应用于索引,还是需要通过索引模板来包装;如果自定义索引模板的索引模式(index_patterns)与内置索引模板一致,那么请确保优先级不一致,具体地,如果想覆盖该内置索引模板,请确保自定义索引模板的优先级值大于100。

1.1 内置索引模板

  • metrics,其应用于metrics-*-*模式索引
  • logs,其应用于logs-*-*模式索引

1.2 内置组件模板

  • metrics-mappings
  • metrics-settings
  • logs-mappings
  • logs-settings

2 模板优先级

explicit settings from the create index request > index template > legacy template

3 模板REST API

3.1 新增/更新

3.1.1 索引模板
代码语言:javascript
复制
PUT /_index_template/<index-template-name>

请求体内容:

属性

是否必须

描述

默认值

index_patterns

通配符表达式「数组」,用于匹配数据流和索引的名称

template

×

索引模板内容,可以包含mappings、settings和aliases信息

composed_of

×

组件模板名称「数组」

priority

×

模板优先级,正整数

0

version

×

索引模板版本号

_meta

×

索引模板的元数据,可以是任何内容

示例一
代码语言:javascript
复制
PUT /_index_template/index-template-name-000001
{
    "index_patterns": [
        "t*"
    ],
    "priority": 0,
    "template": {
        "settings": {
            "number_of_shards": 1,
            "number_of_replicas": 0
        },
        "mappings": {
            "_source": {
                "enabled": false
            }
        }
    }
}
示例二
代码语言:javascript
复制
PUT /_index_template/index-template-name-000001
{
    "index_patterns": [
        "t*"
    ],
    "composed_of": [
        "template_with_2_shards",
        "template_with_3_shards"
    ]
}
3.1.2 组件模板
代码语言:javascript
复制
PUT /_component_template/<component-template-name>

请求体内容:

属性

是否必须

描述

默认值

template

组件模板内容,可以包含mappings、settings和aliases信息

version

×

组件模板版本号

_meta

×

组件模板的元数据,可以是任何内容

代码语言:javascript
复制
PUT /_component_template/component-template-000001
{
    "template": {
        "settings": {
            "number_of_shards": 1
        },
        "aliases": {
            "alias1": {},
            "alias2": {
                "filter": {
                    "term": {
                        "user.id": "kimchy"
                    }
                },
                "routing": "shard-1"
            },
            "{index}-alias": {}
        }
    },
    "version": 1
}

3.2 删除

3.2.1 索引模板
代码语言:javascript
复制
DELETE /_index_template/<index-template-name>
3.2.2 组件模板
代码语言:javascript
复制
DELETE /_component_template/<component-template-name>

3.3 查询

3.3.1 索引模板
代码语言:javascript
复制
GET /_index_template/<index-template-name>
3.3.2 组件模板
代码语言:javascript
复制
GET /_component_template/<component-template-name>
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序猿杜小头 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Elasticsearch Template
    • 1 内置模板
      • 1.1 内置索引模板
      • 1.2 内置组件模板
    • 2 模板优先级
      • 3 模板REST API
        • 3.1 新增/更新
        • 3.2 删除
        • 3.3 查询
    相关产品与服务
    Elasticsearch Service
    腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档