You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OpenSearch中指定记录TTL及定义索引默认记录TTL?

在OpenSearch中设置记录TTL及索引默认TTL的方法

单条记录指定TTL

如果要给单条文档设置独立的过期时间,推荐用自定义字段结合索引生命周期管理(ILM)的方式:

  • 第一步:创建索引时,在映射里定义一个日期类型字段(比如expire_at),用于存储文档到期时间:
PUT /my_index
{
  "mappings": {
    "properties": {
      "expire_at": {
        "type": "date"
      }
      // 其他业务字段
    }
  }
}
  • 第二步:索引文档时,指定该字段的具体到期时间:
PUT /my_index/_doc/1
{
  "content": "测试内容",
  "expire_at": "2024-12-31T23:59:59Z"
}
  • 第三步:创建ILM策略,设置当expire_at字段时间到达时自动删除文档:
PUT _ilm/policy/expire_policy
{
  "policy": {
    "phases": {
      "delete": {
        "min_age": "0ms",
        "actions": {
          "delete": {
            "delete_search_query": {
              "query": {
                "bool": {
                  "filter": [
                    {
                      "range": {
                        "expire_at": {
                          "lte": "{{now}}"
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        }
      }
    }
  }
}
  • 最后将策略关联到目标索引(创建索引时指定或后续更新):
PUT /my_index/_settings
{
  "index.lifecycle.name": "expire_policy"
}

注意:旧版的_ttl字段已被废弃,OpenSearch官方推荐使用ILM方式实现TTL功能。

为索引设置默认TTL

如果要让索引下所有文档使用统一的默认过期时间,无需每条单独指定,同样通过ILM实现:

  • 创建ILM策略,设置文档在创建后固定时长(比如7天)自动删除:
PUT _ilm/policy/default_expire_policy
{
  "policy": {
    "phases": {
      "delete": {
        "min_age": "7d",
        "actions": {
          "delete": {}
        }
      }
    }
  }
}
  • 关联到索引后,所有文档会在创建时间(基于@timestamp字段,未指定则用索引时间)过去7天后被自动删除。
  • 若需要自定义默认到期时间,可在索引映射里给expire_at字段设置默认值(比如创建后30天):
PUT /my_index
{
  "mappings": {
    "properties": {
      "expire_at": {
        "type": "date",
        "default": "{{now+30d}}"
      }
    }
  },
  "settings": {
    "index.lifecycle.name": "expire_policy"
  }
}

这样索引文档时若不指定expire_at,会自动使用默认的30天后到期,再通过ILM自动删除。

内容的提问来源于stack exchange,提问作者quzhi65222714

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 14:25:03