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

如何为Elasticsearch月度索引指定正则形式的索引模板匹配规则

Elasticsearch 月度索引模板正则匹配正确配置

先修正正则规则

你原有规则存在两个问题:

  • 正则末尾多了日维度的匹配段,你需要匹配的是myindex-yyyy-MM格式,不需要匹配日部分
  • Elasticsearch 需要将正则用/包裹才会识别为正则匹配模式,否则会作为普通通配符字符串处理
  • JSON 配置中反斜杠需要额外转义,\d要写为\\d

最终可直接使用的匹配规则为:/^myindex-\\d{4}-(0[1-9]|1[0-2])$/

如果你允许月份为单数字(比如myindex-2024-5),可以把月份匹配段改为(0?[1-9]|1[0-2])


7.8及以上版本(新索引模板,推荐)

PUT _index_template/myindex_monthly_template
{
  "index_patterns": ["/^myindex-\\d{4}-(0[1-9]|1[0-2])$/"],
  "template": {
    "settings": {
      "number_of_shards": 3,
      "number_of_replicas": 1
      // 补充你需要的其他索引配置
    },
    "mappings": {
      "properties": {
        // 补充你需要的字段映射配置
      }
    }
  },
  "priority": 200,
  "composed_of": []
}

7.8以下版本(旧版索引模板)

PUT _template/myindex_monthly_template
{
  "index_patterns": ["/^myindex-\\d{4}-(0[1-9]|1[0-2])$/"],
  "order": 200,
  "settings": {
    "number_of_shards": 3,
    "number_of_replicas": 1
    // 补充你需要的其他索引配置
  },
  "mappings": {
    "properties": {
      // 补充你需要的字段映射配置
    }
  }
}

配置验证

执行以下请求验证匹配是否符合预期:

// 验证合法月度索引会匹配到模板
POST _index_template/_simulate
{
  "index_name": "myindex-2024-05"
}

// 验证非法索引不会匹配到模板
POST _index_template/_simulate
{
  "index_name": "myindex-abc"
}

如果是旧版本模板可以直接创建测试索引验证匹配结果。

内容的提问来源于stack exchange,提问作者a.ilchinger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:06:00