前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >10.ES滚动索引如何使用

10.ES滚动索引如何使用

作者头像
AI码师
发布2023-11-08 14:46:35
发布2023-11-08 14:46:35
60100
代码可运行
举报
运行总次数:0
代码可运行

索引滚动是一种管理索引的策略,用于优化性能和资源利用,特别是在处理大量数据时。当索引数据量逐渐增大时,可能会出现性能下降或资源压力过大的情况。为了避免这些问题,可以使用索引滚动策略来定期创建新的索引,并将数据从旧索引滚动(移动)到新索引。

创建一个有规律的索引名称

注意-后面必须是整数,这样ES才会给你递增

代码语言:javascript
代码运行次数:0
复制
PUT lglbc_rollover_log-0001
{
  "aliases": {
    "lglbc_rollover_log": {}
  }
}

为别名添加滚动条件

代码语言:javascript
代码运行次数:0
复制
POST lglbc_rollover_log/_rollover
{
  "conditions": {
    "max_age": "7d",
    "max_docs": 2,
    "max_size": "5gb"
  }
}

当前滚动的规则如下,满足任意条件即可

  • max_age:最长服务时间为7天
  • max_docs:文档数量限制为2
  • max_size:索引大小不超过5gb

执行之后,返回如下内容:

添加数据

代码语言:javascript
代码运行次数:0
复制
PUT lglbc_rollover_log/_doc/001
{
  "name":"登录",
  "api":"/login",
  "method":"post"
}

PUT lglbc_rollover_log/_doc/002
{
  "name":"登录",
  "api":"/login",
  "method":"post"
}

手动触发rollover条件

代码语言:javascript
代码运行次数:0
复制
POST lglbc_rollover_log/_rollover
{
  "conditions": {
    "max_age": "7d",
    "max_docs": 2,
    "max_size": "5gb"
  }
}

结果中返回了新索引的名称:lglbc_rollover_log-000002

我们验证下新的索引是否存在

代码语言:javascript
代码运行次数:0
复制
GET lglbc_rollover_log-000002

结果显示还没创建,因为还没满足条件,所以再添加一条数据

代码语言:javascript
代码运行次数:0
复制
PUT lglbc_rollover_log/_doc/003
{
  "name":"登录",
  "api":"/login",
  "method":"post"
}

再调用端点触发

代码语言:javascript
代码运行次数:0
复制
POST lglbc_rollover_log/_rollover
{
  "conditions": {
    "max_age": "7d",
    "max_docs": 2,
    "max_size": "5gb"
  }
}

发现已经返回了新的索引名称,并且索引lglbc_rollover_log-000002已经创建 ,并且已经返回了下一次的索引名称。

需要注意的是:ES并不在我们添加数据的时候校验这个规则,而是需要我们手动带着这个条件去触发,所以这个接口我们需要定时轮训调用,分割的是否精确取决于我们轮训的间隔。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乐哥聊编程 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建一个有规律的索引名称
  • 为别名添加滚动条件
  • 添加数据
  • 手动触发rollover条件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档