elasticsearch中创建索引模板_index_template

这篇具有很好参考价值的文章主要介绍了elasticsearch中创建索引模板_index_template。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、什么是索引模板

        索引模版是创建索引时自动应用提前设置好的settings、mappings和aliases,通过索引的名称进行匹配。
        对索引模版的更改时不会影响目前已经根据索引模版创建的索引。

2、索引模板作用及使用场景

        使用索引模版可以省去创建索引时再次指定settings、mappings、aliases的步骤,具体的应用场景比较常用的就有日志索引。

        需求如下:查询日志索引名称为log,每天根据当天日期生成索引(log-20232302),所有的索引使用相同的settings和mappings,且alias指向最新日期的log索引那么我们就可以使用索引模版来实现。

3、创建索引模板

        创建模板索引的参数及模板控制参数如下;

  • index_patterns: 必须的参数,使用通配符定义匹配索引的规则。
  • priority:可选的参数,索引模版的匹配优先级,如果不填默认0(最低优先级),多个模版时,优先匹配优先级高的模版。
  • template:可选参数,但是我认为是必须的,少了这个参数,索引模版的意义在哪呢是不是,可以说是核心参数。可以配置索引的settings,mappings,aliases。

        settings:索引的settings设置。

        mappings:索引的mappings设置。

        aliases:对象形式,key是别名的名称,并且还支持如下参数:

                filter:可选,对象类型,限制别名能访问的文档

                index_routing:可选,字符串,索引操作时的路由值,如果指定会覆盖routing的值

                is_hidden:可选,布尔类型,如果设置为true,隐藏别名。默认false,该别名指定的所有索引必须有相同的is_hidden值

                is_write_index:可选,布尔类型,如果设置为true,该索引为别名的写索引

                routing:可选,字符串,索引和搜索操作时的路由值

                search_routing:可选,字符串,搜索操作时的路由值,如果指定会覆盖routing的值

  • version:索引模版的版本号,Elasticsearch不会自动生成
  • composed_of:可选,字符串数组,可选可使用的组件模版的有序数组。按照数组中组件模版的顺序合并,最后一个模版具有最高的优先级
  • data_stream:可选,对象类型,如果索引模版中包含该该对象,可以是空对象,则使用模版创建索引数据流和支持的索引

        支持如下参数:

                hidden:可选,布尔类型,如果为 true,数据流隐藏,默认 false
                allow_custom_routing: 可选,布尔类型,如果为 true,则数据流支持自定义路由,默认 false

  • _meta:可选,对象类型,该索引模版的用户元数据配置
     

创建一个简单的索引模板:

PUT _index_template/log_template
{
  "index_patterns": "log*",
  "priority": "1",
  "template": {
    "settings": {
      "number_of_shards": "2",
      "number_of_replicas": "1"
    },
    "mappings": {
      "properties": {
        "creater": {
          "type": "keyword"
        },
        "module": {
          "type": "keyword"
        },
        "content": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword"
            }
          }
        },
        "time": {
          "type": "date",
          "format": "strict_date_optional_time||epoch_millis||yyyy-MM-dd HH:mm:ss"
        }
      }
    },
    "aliases": {
      "log": {}
    }
  }
}

elasticsearch中创建索引模板_index_template

4、查看索引模板

GET _index_template/log_template

# 响应结果
{
  "index_templates" : [
    {
      "name" : "log_template",
      "index_template" : {
        "index_patterns" : [
          "log*"
        ],
        "template" : {
          "settings" : {
            "index" : {
              "number_of_shards" : "2",
              "number_of_replicas" : "1"
            }
          },
          "mappings" : {
            "properties" : {
              "module" : {
                "type" : "keyword"
              },
              "creater" : {
                "type" : "keyword"
              },
              "time" : {
                "format" : "strict_date_optional_time||epoch_millis||yyyy-MM-dd HH:mm:ss",
                "type" : "date"
              },
              "content" : {
                "type" : "text",
                "fields" : {
                  "keyword" : {
                    "type" : "keyword"
                  }
                }
              }
            }
          },
          "aliases" : {
            "log" : { }
          }
        },
        "composed_of" : [ ],
        "priority" : 1
      }
    }
  ]
}

elasticsearch中创建索引模板_index_template

5、校验索引模板是否存在

        存在返回200,不存在返回404。

elasticsearch中创建索引模板_index_template

elasticsearch中创建索引模板_index_template

6、使用索引模板

6.1 通过索引模板创建索引

以上面创建的索引模板log*为例,索引名称以log开头的索引都会自动使用索引模板创建。

创建索引log-2023-03-04:

PUT log-2023-03-04

elasticsearch中创建索引模板_index_template

查看索引log-2023-03-04:

GET log-2023-03-04

# 响应结果
{
  "log-2023-03-04" : {
    "aliases" : {
      "log" : { }
    },
    "mappings" : {
      "properties" : {
        "content" : {
          "type" : "text",
          "fields" : {
            "keyword" : {
              "type" : "keyword"
            }
          }
        },
        "creater" : {
          "type" : "keyword"
        },
        "module" : {
          "type" : "keyword"
        },
        "time" : {
          "type" : "date",
          "format" : "strict_date_optional_time||epoch_millis||yyyy-MM-dd HH:mm:ss"
        }
      }
    },
    "settings" : {
      "index" : {
        "routing" : {
          "allocation" : {
            "include" : {
              "_tier_preference" : "data_content"
            }
          }
        },
        "number_of_shards" : "2",
        "provided_name" : "log-2023-03-04",
        "creation_date" : "1684712008494",
        "number_of_replicas" : "1",
        "uuid" : "PLGea-euRF6RqFO8d4xstA",
        "version" : {
          "created" : "7170699"
        }
      }
    }
  }
}

elasticsearch中创建索引模板_index_template

6.2 同时匹配多个索引模板的选择

        在实际使用中,我们会创建多个索引模板,这个时候该如何选择呢?

        首先再创建一个索引模版log_template2,匹配模式设置'log-2023*',优先级设置2,该模版time字段设置为keyword,上面log_template模版设置time为date类型。

PUT _index_template/log_template2
{
  "index_patterns": "log-2023*",
  "priority": "2",
  "template": {
    "settings": {
      "number_of_shards": "2",
      "number_of_replicas": "1"
    },
    "mappings": {
      "properties": {
        "creater": {
          "type": "keyword"
        },
        "module": {
          "type": "keyword"
        },
        "content": {
          "type": "text",
          "fields": {
            "keyword": {
              "type": "keyword"
            }
          }
        },
        "time": {
          "type": "keyword"
        }
      }
    },
    "aliases": {
      "log-2023": {}
    }
  }
}

elasticsearch中创建索引模板_index_template

创建索引log-2023-03-04-v2:

elasticsearch中创建索引模板_index_template

查看索引log-2023-03-04-v2:

elasticsearch中创建索引模板_index_template

        可以看出索引og-2023-03-04-v2使用了log_template2模板,log_template2优先级设置为2高于log_template的优先级。索引匹配到多个模版时优先使用优先级高的模版。

6.3 使用索引模板创建索引别名

        在上面使用的两个索引模板中,创建索引时都自动添加了别名,别名操作语句如下:

添加别名:

方法一:

POST _aliases
{
  "actions": [
    {
      "add": {
        "index": "log-*",
        "alias": "logs"
      }
    }
  ]
}

elasticsearch中创建索引模板_index_template

elasticsearch中创建索引模板_index_template

方法二:

elasticsearch中创建索引模板_index_template

删除别名:

POST _aliases
{
  "actions": [
    {
      "remove": {
        "index": "log-2023-03-04-v2",
        "alias": "log-2023"
      }
    }
  ]
}

elasticsearch中创建索引模板_index_template

批量删除别名:

POST _aliases
{
  "actions": [
    {
      "remove": {
        "index": "log-2023*",
        "alias": "logs"
      }
    }
  ]
}

elasticsearch中创建索引模板_index_template

elasticsearch中创建索引模板_index_template

7、删除索引模板

DELETE _index_template/log_template

elasticsearch中创建索引模板_index_template文章来源地址https://www.toymoban.com/news/detail-428410.html

到了这里,关于elasticsearch中创建索引模板_index_template的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • elasticsearch index sorting ,索引排序

    es默认的搜索排序是_score,通过评分排序,但是对于大数据量,评分一致的情况下也还是会乱序,官方说可以使用_doc,但是这个索引插入顺序是按照分片存的,也就是为2 的顺序可能多个分片都存在。所以实测并不好用。博主在做大数据量的排序时候,使用 datatime字段排序 ,解

    2024年02月04日
    浏览(57)
  • ES之API系列--index template(索引模板)的用法(有实例)

    原文网址:ES之API系列--index template(索引模板)的用法(有实例)_IT利刃出鞘的博客-CSDN博客 说明 本文介绍ElasticSearch的index template(索引模板)的用法(有实例)。 官网网址 https://www.elastic.co/guide/en/elasticsearch/reference/8.0/index-templates.html 作用概述         在 新建 索引时,如果索引名

    2024年04月09日
    浏览(41)
  • Elasticsearch Index Monitoring(索引监控)之Index Stats API详解

    index_current 当前正在执行索引操作的个数。 index_failed 失败的索引操作次数。 delete_total 执行删除索引操作的次数。 delete_time_in_millis 删除索引操作总耗时。 delete_current 当前正在执行删除索引操作的个数。 noop_update_total 空更新总次数(检测到空更新的次数)。 is_throttled 索引是

    2024年04月09日
    浏览(44)
  • elasticsearch使用脚本 滚动关闭索引,更新index setting

         在旧的索引中更新mapping时,新增了分词器(分词器已经在模板中添加),但是在更新mapping时报错: 查看elasticsearch官网,发现不允许在已经存在的索引中动态更新分词器,只能先将索引close,更新分词器,然后再打开 Update index settings API | Elasticsearch Guide [8.3] | Elastic 2.1 由

    2024年02月08日
    浏览(51)
  • Elasticsearch之Index Setting:索引的静态配置与动态配置

            索引的配置项按是否可以更改分为静态配置与动态配置,所谓的 静态配置即索引创建后不能修改。 索引静态配置  【索引创建后不能修改】 index.number_of_shards:索引分片的数量。在ES层面可以通过es.index.max_number_of_shards属性设置索引最大的分片数,默认为1024,in

    2024年02月16日
    浏览(47)
  • Elasticsearch 索引文档时create、index、update的区别【学习记录】

    本文基于elasticsearch7.3.0版本。 一、思维导图 elasticsearch中create、index、update都可以实现插入功能,但是实现原理并不相同。 二、验证index和create 由上面思维导图可以清晰的看出create、index的大致区别,下面我们来验证下思维导图中的场景: 1、首先明确一点:如何指定是creat

    2024年01月20日
    浏览(46)
  • 8.ElasticSearch系列之索引模板与索引

    1. 索引模板创建索引 可以通过kibana工具进行创建索引模板 也可以自定义语句,如创建poi索引模板 2. 索引新增字段及重建 3. 远程索引同步

    2024年02月12日
    浏览(38)
  • elasticsearch创建索引模板

    在es数据保存数据,数据量很大时,如日志记录,监控数据等,需要按月或者按日分索引保存,需要创建统一模板来规定数据格式。 可以通过kibana创建 创建模板 创建template之后创建索引

    2024年02月11日
    浏览(50)
  • Elasticsearch索引模板

    目录 1、索引模板是什么 2、索引模板的操作 2.1、定制索引结构 2.2、查询索引模板 2.3、创建索引 2.4、删除索引模板 2.5、es内置的索引模板 3、模板组件 3.1、创建组件模板 3.2、查看组件模板 3.3、使用组件模板 3.4、删除组件模板         当需要为同一类索引应用相同的配置

    2024年02月04日
    浏览(43)
  • Elasticsearch 索引模板、生命周期策略、节点角色

    索引模板可以帮助简化创建和二次配置索引的过程,让我们更高效地管理索引的配置和映射。 索引生命周期策略是一项有意义的功能。它通常用于管理索引和分片的热(hot)、温(warm)和冷(cold)数据,以及定期删除过期的数据,以确保Elasticsearch的健康运行。 Elasticsearch集

    2024年04月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包