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

DELETE FROM [Index]

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

   http://localhost:9200/[indexName]

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


当前回答

我使用开发工具删除数据

POST <index_name>/_delete_by_query
  {
   "query": {
       "match_all": {}
    }
 }

例子

POST vehicle-data/_delete_by_query
      {
       "query": {
           "match_all": {}
        }
     }

其他回答

您可以使用cURL或使用开源爱好者为Elasticsearch创建的许多工具中的任何一个进行可视化删除。

使用旋度

curl -XDELETE localhost:9200/index/type/documentID

e.g.

curl -XDELETE localhost:9200/shop/product/1

然后,您将收到关于此操作是否成功的回复。你可以删除整个索引,也可以删除带有索引的类型,你也可以删除一个类型,就像这样,去掉文档ID

curl -XDELETE localhost:9200/shop/product

如果您希望删除索引-

curl -XDELETE localhost:9200/shop

如果您希望删除多个遵循特定命名约定的索引(注意*,通配符),则-

curl -XDELETE localhost:9200/.mar* 

在视觉上

上面提到了各种各样的工具,我不会在这里列出它们,但我会链接到一个可以让你直接开始的工具,位于这里。这个工具被称为KOPF,要连接到您的主机,请单击左上角的标志,并输入您的集群的URL。

一旦连接,您将能够管理您的整个集群,删除,优化和调优您的集群。

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

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

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

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

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

把指数列出来 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”:正确 }。

这里有很多很好的答案,但我也想补充一点:

如果你在AWS ElasticSearch服务上运行,你不能删除/删除索引。不是删除索引,而是必须重新索引它们。