繁体   English   中英

Elasticsearch根据字段值删除文档

[英]Elasticsearch delete a document based on a field value

我是Elasticsearch的新手,正在尝试找出一种删除包含以时间戳为字段值的文档的方法。

我有一个文档,字段名为lastmodifiedtime 该字段的类型为long,用于存储时间戳(即自EPOCH。ex,1486709502起的毫秒数)。

现在,我有一个用例,需要删除lastmodifiedtime早于一天的所有文档。 因此,我找出与一天前时间相对应的timstamp值,然后尝试删除文档。

我尝试了REST调用,如下所示

DELETE http://localhost:9200/testindex/testtype/_query
"query": {
    "term" : {
        "lastmodifiedtime" : {
        "lte": 1486709504
        }
    }
 }

但是得到以下响应:

{
    "found": false,
    "_index": "testindex",
    "_type": "testtype",
    "_id": "_query",
    "_version": 4,
    "result": "not_found",
    "_shards":
    {
        "total": 2,
        "successful": 1,
        "failed": 0
    }
}

您能帮我如何处理这种情况吗?

您可以使用delete_by查询api

POST http://localhost:9200/testindex/testtype/_delete_by_query
{
  "query": {
    "range": {
      "lastmodifiedtime": {
        "lte": 1486709504
      }
    }
  }
}

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM