【问题标题】:Delete document older than One hour is not working in elasticsearch删除超过一小时的文档在弹性搜索中不起作用
【发布时间】:2019-06-28 06:49:44
【问题描述】:

我是 elasticsearch 新手,我在 elasticsearch 中有一个文档,文档包含大量用户视图,现在我想删除那些超过 3 小时的视图,为此我在 elasticsearch 中编写了以下查询

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

当我执行此查询时,我收到以下错误

{ “错误”:{ “根本原因”: [ { “类型”:“解析异常”, "reason": "没有为 [query] 注册 [query]", “线”:1, “科尔”:66 } ], “类型”:“解析异常”, "reason": "没有为 [query] 注册 [query]", “线”:1, “col”:66 },“状态”:400 }

【问题讨论】:

    标签: php laravel elasticsearch


    【解决方案1】:

    您的查询应如下所示:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-16
      • 2021-08-13
      • 2015-06-01
      相关资源
      最近更新 更多