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

cclgggtu  于 2022-11-22  发布在  ElasticSearch
关注(0)|答案(2)|浏览(200)

大家好,我有100个索引到我的ElasticSearch,我想删除他们与一个查询。他们都开始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}

你有什么想法吗?

kg7wmglp

kg7wmglp1#

Elasticsearch documentation说:
删除索引API也可以应用于多个索引,方法是使用逗号分隔的列表,或者使用_all或 * 作为索引应用于所有索引(小心!)。
若要禁止允许通过通配符或_all删除索引,请将配置中的action.destructive_requires_namesetting设置为true。此设置也可以通过群集更新设置API进行更改。
因此,如果您有预定义数量的索引要删除,则此方法可能有效:

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

如果要使用通配符,则必须按上述方式更新配置

vm0i2vca

vm0i2vca2#

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

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

  }
}

相关问题