删除超过一小时的文档在Elasticsearch中不起作用

时间:2019-06-28 06:49:44

标签: php laravel elasticsearch

我是Elasticsearch的新手,我在Elasticsearch中有一个文档,并且该文档包含成千上万的用户视图,现在我想删除那些早于3小时的视图,为此我在Elasticsearch中编写以下查询

POST {INDEX}/_delete_by_query
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "type": "box_views"
          }
        },
        {
          "query": {
            "range": {
              "@created_at": {
                "gte": "now-3h"
              }
            }
          }
        }
      ]
    }
  }
}

执行此查询时,出现以下错误

  

{“错误”:{       “根本原因”: [         {           “ type”:“ parsing_exception”,           “ reason”:“没有为[query]注册任何[query]”,           “行”:1,           “ col”:66         }       ],       “ type”:“ parsing_exception”,       “ reason”:“没有为[query]注册任何[query]”,       “行”:1,       “ col”:66},“ status”:400}

1 个答案:

答案 0 :(得分:1)

您的查询应如下所示:

POST {INDEX}/_delete_by_query
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "type": "box_views"
          }
        },
        {
          "range": {
            "@created_at": {
              "gte": "now-3h"
            }
          }
        }
      ]
    }
  }
}

此外,如果您要查找较旧的文档,我认为您应该使用lte而不是gte