删除 Elasticsearch 中除 one/some 之外的所有索引?

Delete all index except one/some in Elasticsearch?

有没有办法删除除一个以外的所有索引?

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

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

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

我试过下面的查询,但我想 _all API 不支持查询。

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

有没有办法在不使用批量 API 的情况下删除除 one/some 之外的所有索引?

尝试使用 multiple indices 语法。您可以使用 * 指定所有索引,然后使用 -.

排除其中一些索引

假设我们需要删除除foobar之外的所有索引,那么HTTP请求应该是

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