从elasticsearch中删除多个索引中的文档

时间:2014-03-20 09:25:24

标签: elasticsearch

我试图跨多个索引删除某种类型的所有文档(文档由logstash创建,因此每天都有一个索引)。

我试过这个:

DELETE _all/_query?q=type:iss

结果如下:

{
   "_indices": {
      "logstash-2014.01.18": {
         "_shards": {
            "total": 5,
            "successful": 0,
            "failed": 5
         }
      },
   "_indices": {
      "logstash-2014.01.18": {
         "_shards": {
            "total": 5,
            "successful": 2,
            "failed": 3
         }
      },
     ...
}

每次我运行它时,每个索引都会获得不同数量的成功/失败。最初的第一个查询似乎起作用。如果我查看elasticsearch-head和Kibana,似乎至少有一些文档被删除了。但是,如果我再查询它们:

POST _search {"query":{"match":{"type":"iis"}}}

GET _search?q=type:iis

它仍会返回所有结果。我不相信这是一个缓存问题,因为我已尽一切可能确保不是这样(清除浏览器数据,重新启动弹性搜索/服务器等)。

我也尝试过:

DELETE _all/iis/_query {"query":{"match_all":{}}}

我再次得到不一致的成功/失败结果,但是当我再次运行搜索查询时,似乎确实删除了文档。它似乎只是每次删除一些。

为什么这种情况如此不一致,我该怎样做才能让这种工作始终如一?

0 个答案:

没有答案