Elasticsearch rollover index滚动索引

滚动索引一般可以与索引模板结合使用,实现按一定条件自动创建索引。

1.当现有索引被认为太大或太旧时,滚动索引API会将别名滚动到新的索引。

PUT /logs-000001
{
  "aliases": {
    "logs_write": {}
  }
}

# Add > 1000 documents to logs-000001

POST /logs_write/_rollover
{
  "conditions": {
    "max_age":   "7d",
    "max_docs":  1000,
    "max_size":  "5gb"
  }
}

创建索引 logs-0000001 别名为 logs_write.
如果 logs_write 指向的索引是在7天以前创建的,或者包含1000个以上的文档,则会创建 logs-000002索引,并更新logs_write别名以指向logs-000002.

返回值
{
  "acknowledged": true,
  "shards_acknowledged": true,
  "old_index": "logs-000001",
  "new_index": "logs-000002",
  "rolled_over": true,
  "dry_run": false,
  "conditions": {
    "[max_age: 7d]": false,
    "[max_docs: 1000]": true
  }
}

2.如果现有索引的名称以 - 和数字结尾。 logs-000001 - 然后新索引的名称将遵循相同的模式,增加数字(logs-000002)。 无论旧索引名称如何,编号为零填充长度为6。

如果旧名称与此模式不匹配,则必须按照如下所示,指定新索引的名称:

POST /my_alias/_rollover/my_new_index_name
{
  "conditions": {
    "max_age":   "7d",
    "max_docs":  1000,
    "max_size": "5gb"
  }
}

3.使用日期计算: 根据索引滚动的日期来命名滚动索引是有用的技术,例如  logstash-2016.02.03.。 滚动API支持日期,但要求索引名称以一个破折号后跟一个数字,例如 logstash-2016.02.03-1,每次索引滚动时都会增加。 例如

# PUT /<logs-{now/d}-1> with URI encoding:
PUT /%3Clogs-%7Bnow%2Fd%7D-1%3E
{
  "aliases": {
    "logs_write": {}
  }
}

PUT logs_write/_doc/1
{
  "message": "a dummy log"
}

POST logs_write/_refresh

# Wait for a day to pass

POST /logs_write/_rollover
{
  "conditions": {
    "max_docs":   "1"
  }
}

4.索引名称对日期计算的支持:

日期计算的格式

<static_name{date_math_expr{date_format|time_zone}}>

上述的说明 :


位置

说明
static_name 是名称的 static text( 静态文本)部分
date_math_expr 是动态计算日期的动态 date math 表达式
date_format 是计算日期应呈现的可选格式。默认是 YYYY.MM.dd
time_zone 是可选的时区。默认为 utc 。

必须将 date math 索引名称表达式包含在尖括号中,并且所有的特殊字符都应进行 URI 编码。例如 :

# GET /<logstash-{now/d}>/_search
GET /%3Clogstash-%7Bnow%2Fd%7D%3E/_search
{
  "query" : {
    "match": {
      "test": "data"
    }
  }
}

用于 date 舍入的特殊字符必须按照如下 URI 编码 :


<


%3C


>


%3E


/


%2F


{


%7B


}


%7D


|


%7C


+


%2B


:


%3A


,


%2C

以下示例显示了不同形式索引表达式和它们解析的 final index names(最终索引名称),给定的当前时间是 2024 年 月 22 日 utc

Expression Resolves to

<logstash-{now/d}>


logstash-2024.03.22


<logstash-{now/M}>


logstash-2024.03.01


<logstash-{now/M{YYYY.MM}}>


logstash-2024.03


<logstash-{now/M-1M{YYYY.MM}}>


logstash-2024.02


<logstash-{now/d{YYYY.MM.dd|+12:00}}>


logstash-2024.03.23

如果索引中需要使用{}需要进行转义处理

<elastic\\{ON\\}-{now/M}> resolves to elastic{ON}-2024.03.01

5.滚动API支持dry_run模式,可以在不执行实际滚动的情况下检查请求条件:

PUT /logs-000001
{
  "aliases": {
    "logs_write": {}
  }
}

POST /logs_write/_rollover?dry_run
{
  "conditions" : {
    "max_age": "7d",
    "max_docs": 1000,
    "max_size": "5gb"
  }
}

原文地址:https://www.cnblogs.com/libin2015/p/10678342.html

时间: 2024-08-01 05:46:34

Elasticsearch rollover index滚动索引的相关文章

elasticsearch源数据容量与索引容量的大小比例是怎样的?index索引的容量与什么因素有关?

elasticsearch源数据容量与索引容量的大小比例与很多因素有关,没有一个比较固定的比例. 首先,是否存 _all有着最大的影响,如果你的es不是拿来做全文检索,那么这个_all可以不用存: 其次是 _source(是否存原始数据): 最后是对多少个字段分词,多少个字段建索引,使用什么分词器等(用ik max 明显会比 ik smart 大很多). 一般如果不存_all,只对需要的字段分词和建索引的话,索引数据不会比原始数据膨胀太多,加上副本或许就跟原始数据一样大,因为索引数据会压缩. 这

elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)

一.快速入门 1. 查看集群的健康状况 http://localhost:9200/_cat http://localhost:9200/_cat/health?v 说明:v是用来要求在结果中返回表头 状态值说明 Green - everything is good (cluster is fully functional),即最佳状态Yellow - all data is available but some replicas are not yet allocated (cluster i

Elasticsearch之curl删除索引库

关于curl创建索引库的介绍,请移步 Elasticsearch之curl创建索引库 [[email protected] elasticsearch-2.4.3]$ curl -XPUT 'http://192.168.80.200:9200/zhouls'{"error":{"root_cause":[{"type":"index_already_exists_exception","reason":&

[ElasticSearch]Java API 之 索引管理

ElasticSearch为了便于处理索引管理(Indices administration)请求,提供了 org.elasticsearch.client.IndicesAdminClient接口.通过如下代码从 Client 对象中获得这个接口的实现: IndicesAdminClient indicesAdminClient = client.admin().indices(); IndicesAdminClient定义了好几种prepareXXX()方法作为创建请求的入口点. 1. 索引

Elasticsearch之curl创建索引库

关于curl的介绍,请移步 Elasticsearch学习概念之curl 启动es,请移步 Elasticsearch的前后台运行与停止(tar包方式) Elasticsearch的前后台运行与停止(rpm包方式) 创建索引库,我这里命名为zhouls [[email protected] elasticsearch-2.4.3]$ curl -XPUT 'http://192.168.80.200:9200/zhouls'{"acknowledged":true}[[email pr

ElasticSearch Java Api -检索索引库

上篇博客记录了如何用java调用api把数据写入索引,这次记录下如何搜索. 一.准备数据 String data1 = JsonUtil.model2Json(new Blog(1, "git简介", "2016-06-19", "SVN与Git最主要的区别...")); String data2 = JsonUtil.model2Json(new Blog(2, "Java中泛型的介绍与简单使用", "2016-0

四十一 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)基本的索引和文档CRUD操作、增、删、改、查

elasticsearch(搜索引擎)基本的索引和文档CRUD操作 也就是基本的索引和文档.增.删.改.查.操作 注意:以下操作都是在kibana里操作的 elasticsearch(搜索引擎)都是基于http方法来操作的 GET 请求指定的页面信息,并且返回实体主体 POST 向指定资源提交数据进行处理请求,数据被包含在请求体中,POST请求可能会导致新的资源的建立和/或已有资源的修改 PUT 向服务器传送的数据取代指定的文档的内容 DELETE 请求服务器删除指定的页面 1.索引初始化,相当

elasticsearch文档、索引的CRUD操作

elasticsearch概念 1. 集群:一个或者多个节点组织在一起 2. 节点:一个节点是集群中的一个服务器,有一个名字来标识,默认是一个随机的漫威角色的名字 3. 分片:将索引划分为多份的能力,允许水平分割和扩展容量,多个分片响应请求,提高性能和吞吐量 4. 副本:创建分片的一份或者多分的能力,在一个节点失败其余节点可以顶上 elasticsearch与mysql对应关系 index(索引) --- 数据库 type(类型) --- 表 documents(文档) --- 行 fields

〈二〉ElasticSearch的认识:索引、类型、文档

目录 上节回顾 本节前言 索引index 创建索引 查看索引 查看单个索引 查看所有索引 删除索引 修改索引 修改副本分片数量 关闭索引 索引别名 增加索引别名: 查看索引别名: 删除索引别名: 补充 小节总结: 类型type 补充: 小节总结: 文档document 插入文档 查询指定文档 更新文档 删除文档 查询所有文档 补充: 小节总结 发表日期:2019年9月19日 上节回顾 在学习新的内容之前,先回顾一下上节的内容,上节主要讲述了以下的内容: ElasticSearch是什么?什么是搜