删除除Elasticsearch中的一个索引以外的所有索引?

时间:2018-08-28 14:17:24

标签: elasticsearch kibana

是否可以删除除一个索引以外的所有索引?

我们可以在 GET 请求中使用文档的元数据 _index

GET _count
{
  "query": {
    "match": {
      "_index": "indexname"
    }
  }
}

上面的查询没有任何意义,而只是表明我们可以在我提到的查询中使用 _index

我尝试了以下查询,但是我猜 _all API不支持查询。

DELETE _all
{
  "query" : {
  "bool" : {
   "must_not" : [
     {
       "match": {
         "_index": "indexname"
       }
     }
   ]
  }
 }
}

是否可以在不使用批量API的情况下删除一个或多个索引以外的所有索引?

1 个答案:

答案 0 :(得分:4)

尝试使用multiple indices语法。您可以使用*指定所有索引,然后使用-排除其中一些。

假设我们需要删除除foobar以外的所有索引,因此HTTP请求应为

curl -X DELETE -i 'http://{server}:{port}/*,-foo,-bar'