删除所有具有相似名称的索引

问题描述 投票:0回答:2

大家好,我的 Elasticsearch 有 100 个索引,我想通过一个查询删除它们。它们都以 myindex 开头:

myindex-1
myindex-2
myindex-3
myindex-4
  .
  .
  .
myindex-100

当我尝试此查询时,它不起作用:

curl -XDELETE http://localhost:9200/myindex*

我得到:

{"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Wildcard expressions or all indices are not allowed"}],"type":"illegal_argument_exception","reason":"Wildcard expressions or all indices are not allowed"},"status":400}

你有什么想法吗?

elasticsearch
2个回答
25
投票

您可以在 kibana 开发工具中使用以下内容:

PUT /_cluster/settings
{
  "transient": {
  "action.destructive_requires_name":false

  }
}

11
投票

Elasticsearch 文档 说:

删除索引 API 还可以应用于多个索引,方法是使用逗号分隔列表,或使用 _all 或 * 作为索引应用于所有索引(小心!)。

为了禁止通过通配符或 _all 删除索引,请将配置中的

action.destructive_requires_name
设置设置为 true。也可以通过集群更新设置 api 更改此设置。

因此,如果您有预定义数量的要删除的索引,这可能会起作用:

curl -XDELETE http://localhost:9200/myindex-1,myindex-2,myindex-3,myindex-4

如果您想使用通配符,您必须如上所述更新配置

© www.soinside.com 2019 - 2024. All rights reserved.