我们如何只删除 elasticsearch 索引中的某些事件?

How do we delete only certain events in an index in elasticsearch?

我想知道是否有任何命令可用于在索引后删除特定事件。我正在使用 windows.

您可以使用 CURL 或 WGET(您可能需要安装 CYGWIN 或类似软件):

以下示例说明如何从 twitter 索引中删除用户值为 "kimchy" 的 tweets。阅读 elasticsearch 查询结构以了解第二个示例中的 JSON

搜索 API -> https://www.elastic.co/guide/en/elasticsearch/reference/1.4/search-search.html 通过查询删除 -> https://www.elastic.co/guide/en/elasticsearch/reference/1.7/docs-delete-by-query.html

$ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query?q=user:kimchy'

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

您还可以安装 REST Easy 或一些类似的浏览器插件:

https://chrome.google.com/webstore/detail/resteasy/nojelkgnnpdmhpankkiikipkmhgafoch?hl=en-US

您可以删除 Elasticsearch 索引中的特定文档。您只需要知道它所在的索引名称、映射类型和 ID(例如 AVEf9)。然后你可以使用delete API来实现它。

curl -XDELETE http://localhost:9200/index_name/type_name/AVEf9

我猜想 运行 大型查询时 marvel-sense 很有用。我使用以下命令删除了从现在起 10 分钟之前存在的数据。

 DELETE /movie1_indexer/movie/_query
{
  "query": {
    "range": {
      "@timestamp":{
        "lt":"now-10m" 
      }
    }
  }
}

小于。

https://www.elastic.co/guide/en/elasticsearch/guide/current/time-based.html