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

How can I delete multiple data in specific index in elasticsearch

我需要删除指定index/type中的多条记录。我遵循这个 document 仍然有同样的问题

我需要删除 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]

然后按照安装Delete By Query插件尝试删除文件 ,

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
     }
  }

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

您无法删除映射类型,因此您的第一个查询不起作用。

您只能删除一个索引

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" : {}
    }
}'

如果您使用的是按查询删除,则需要使用术语而不是 match_all

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