【问题标题】:Delete multiple indices in one Elasticsearch HTTP request (cURL)在一个 Elasticsearch HTTP 请求 (cURL) 中删除多个索引
【发布时间】:2017-12-07 19:12:06
【问题描述】:

我正在使用这个curl 命令行来清理我的索引:

curl -XDELETE http://example.com/my_index-*

但是,现在,我想删除my_index-.*[.][0-3][0-9]

  • 只删除my_index-YYYY.MM.dd
  • 保留my_index-YYYY.MM.dd-*

我找到的相关 Elasticsearch 文档:

  • Delete index API 对正则表达式一无所知。

  • Multiple indices 说:

    它还支持通配符,例如:test**testte*t*test*,以及“添加”(+)和“删除”(-)的能力,用于例如:+test*,-test3

  • Date math support in index names 说:

    几乎所有具有index 参数的API,都支持index 参数值中的日期数学运算。
    [...]
    date_format 是呈现计算日期的可选格式。默认为YYYY.MM.dd


我的问题:

  • 是否可以向 Elasticsearch HTTP 服务器发送 DELETE 请求方法以删除仅格式化为 my_index-YYYY.MM.dd 的索引?
  • 或者反过来,删除所有my_index-*,但保留my_index-*-*

例如,有时可以在POST 数据中提供正则表达式:

curl -XPOST http://example.com/my_index-2017.07.14/_search?pretty' -H 'Content-Type: application/json' -d'
{
    "suggest": {
        "song-suggest" : {
            "regex" : "n[ever|i]r",
            "completion" : {
                "field" : "suggest"
            }
        }
    }
}'

【问题讨论】:

    标签: curl elasticsearch elasticsearch-5 elasticsearch-indices


    【解决方案1】:

    简答

    删除所有索引my_index-* 除了索引my_index-*-*

    curl -X DELETE http://es.example.com/my_index-*,-my_index-*-*
    

    没有正则表达式

    Elasticsearch 5.x 不接受正则表达式或文件名模式?[a-z] 来选择多个索引。

    但是,multiple indices 文档允许 +- 包含和排除索引。

    防止意外删除索引my_index-*-*的脚本:

    #!/bin/bash -xe
    pattern="${1:-*}"
    curl -X DELETE https://es.example.com/my_index-"$pattern",-my_index-*-*?pretty
    

    说明

    • 参数index可以包含一个逗号分隔的索引模式列表,例如my_index_1,my_index_2,my_index_3
    • 索引模式基于通配符,例如my_index*
    • 要包含和排除索引,请使用+- 作为索引前缀,例如my_index_*,-my_index_2017*,+my_index_2017-01*,-my_index_2017-01-31
    • 不需要在第一个索引上使用+

    描述的例子

    DELETE 请求删除my_index_* 之前的所有索引my_index_2017-01-31

    index_list='my_index_*,-my_index_2017*,+my_index_2017-01*,-my_index_2017-01-31'
    curl -X DELETE http://es.example.com/"$index_list"
    
    • 删除所有my_index_*
    • my_index_2017*除外
    • 删除my_index_2017-01*
    • my_index_2017-01-31除外

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 2017-08-21
      • 2013-09-04
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      相关资源
      最近更新 更多