我想从ElasticSearch中删除数据。我已经删除了索引。然而,这似乎并没有真正删除数据本身。我看到的其他东西指向通过查询删除功能。然而,我甚至不知道该问什么。我知道指数。本质上,我想知道如何做a

DELETE FROM [Index]

从邮递员在Chrome。然而,我没有任何运气。似乎无论我做什么,数据都不会消失。到目前为止,我已经成功地删除索引使用DELETE HTTP动词在邮差和使用一个url:

   http://localhost:9200/[indexName]

然而,这似乎并没有真正删除数据(又名文档)本身。


当前回答

1. 删除火

从指定索引中移除文档。

DELETE /<index>/_doc/<_id>

例子:

DELETE http://localhost:9200/my-index-000001/_doc/1

参考:ES指南>>删除API

2. 通过查询API删除

删除与指定查询匹配的文档。

例子:

POST http://localhost:9200/my-index-000001/_delete_by_query
{
  "query": {
      "match": {
           "user.id": "elkbee"
      }
   }
}

参考:ES指南>>根据查询API删除

其他回答

把指数列出来 curl -L localhost:9200/_cat/ indexes

9200默认端口[如果使用其他端口则更改端口]

您可能会发现所有索引都以logstash-yyyy-mm-dd格式开头(logstash-*)

你可以看到所有的索引和使用

使用以下命令删除索引和数据触发器。

curl -XDELETE localhost:9200/index_name(这将同时删除数据和索引)。

你也可以使用chrome扩展elasticsearch-head删除索引

对于批量按查询删除,你可以使用特殊的按查询删除API:

$ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{
    "query" : {
        "term" : { "user" : "kimchy" }
    }
}

在历史上,该API被删除,然后又重新引入

谁有趣,它有悠久的历史。

在这个答案的第一个版本中,我参考了elasticsearch版本1.6的文档。在这篇文章中,该功能被标记为已弃用,但运行良好。 在elasticsearch 2.0版本中,它被移动到单独的插件中。甚至解释了为什么它成为插件的原因。 它再次出现在5.0版的核心API中!

1. 删除火

从指定索引中移除文档。

DELETE /<index>/_doc/<_id>

例子:

DELETE http://localhost:9200/my-index-000001/_doc/1

参考:ES指南>>删除API

2. 通过查询API删除

删除与指定查询匹配的文档。

例子:

POST http://localhost:9200/my-index-000001/_delete_by_query
{
  "query": {
      "match": {
           "user.id": "elkbee"
      }
   }
}

参考:ES指南>>根据查询API删除

可以通过Kibana Console删除索引:

获取所有索引:

GET /_cat/indices?v

删除指定索引。

DELETE /INDEX_NAME_TO_DELETE