如何在elasticsearch中删除特定索引中的多个数据

时间:2017-03-28 12:41:49

标签: curl elasticsearch kibana fluentd

我需要删除指定索引/类型中的多条记录。我遵循这个document stil我有同样的问题

我需要删除g_visitor索引中gvisitor类型的所有文档,我按照下面的命令

curl -XDELETE http://10.1.2.10:9200/g_visitor/gvisitor

抛出错误

No handler found for uri [/g_visitor/gvisitor] and method [DELETE]

然后按照安装按查询删除插件并尝试删除文档 ,

curl -XDELETE 'http://10.1.2.10:9200/g_visitor/gvisitor/_delete_by_query?conflicts=proceed' -d '{
    "query" : { 
        "match_all" : {}
    }
}'

低于错误:

  {
     "found":false,
     "_index":"g_visitor",
     "_type":"gvisitor",
     "_id":"_delete_by_query",
     "_version":1,
     "_shards":{
        "total":2,
        "successful":1,
        "failed":0
     }
  }

Suggeset me,我如何在elasticsearch中删除特定类型索引中的多个或所有文档。

1 个答案:

答案 0 :(得分:2)

您无法删除映射类型,因此您的第一个查询无法正常工作。

您只能删除索引

curl -XDELETE http://10.1.2.10:9200/g_visitor

如果您想使用逐个查询的方法,可以这样做,但需要install the plugin first

sudo bin/plugin install delete-by-query

然后你可以通过调用_query端点(而不是_delete_by_query !!)来使用这样的插件:

curl -XDELETE 'http://10.1.2.10:9200/g_visitor/gvisitor/_query?conflicts=proceed' -d '{
    "query" : { 
        "match_all" : {}
    }
}'