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

DELETE FROM [Index]

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

   http://localhost:9200/[indexName]

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


当前回答

您可以删除整个索引,文档类型或一个特定的id数据。 这是三种方法:

curl -XDELETE localhost:9200/index_name curl -XDELETE localhost:9200/index_name/doc-type curl -XDELETE localhost:9200/index_name/doc-type/ documententid

如果你想删除所有索引,那么使用通配符。

其他回答

你也可以在'elasticsearch head' (Chrome插件)中使用delete操作删除索引。将它添加到你的chrome浏览器并连接到你的主机。在那里,你会发现所有的索引,如果你点击下面的动作按钮,你想删除的索引,你会发现一个删除选项下拉。点击它,并在弹出框中输入DELETE。您的索引将被删除。'Elasticsearch head'扩展是一个查看和管理索引和数据的简单方法。

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

文档(或权威指南)说,你也可以使用下一个查询删除所有索引:

curl -XDELETE 'http://localhost:9200/*'

这里有一个重要的提示:

对于一些人来说,用一个命令就能删除所有数据是一个非常可怕的前景。如果您想消除意外批量删除的可能性,您可以在elasticsearch.yml中将以下设置为true: action.destructive_requires_name:真

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

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

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

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

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

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

假设我需要删除索引filebeat-7.6.2-2020.04.30-000001,我使用curl delete选项执行它(curl -X delete "localhost:9200/filebeat-7.6.2-2020.04.30-000001?pretty"),并导致如下所示的身份验证问题;

{
  "error" : {
    "type" : "security_exception",
    "reason" : "missing authentication credentials for REST request [/filebeat-7.6.2-2020.04.30-000001?pretty]"
  },
  "status" : 401
}

在这里,您应该使用为Elasticsearch提供的用户名和密码对curl请求进行身份验证。然后试着

curl -X DELETE -u myelasticuser:myelasticpassword "localhost:9200/filebeat-7.6.2-2020.04.30-000001?漂亮”

将导致{ “acknowledge”:正确 }。