【问题标题】:ElasticSearch how to DELETE docs if field exists?如果字段存在,ElasticSearch 如何删除文档?
【发布时间】:2018-03-13 12:00:26
【问题描述】:

我想删除某个字段存在的所有文档

我尝试 POST 到 _delete_by_query API

{
  "query": { 
    "bool": {
      "must": [
        { "exists":"field_name" }
      ]
    }
  }
}

这给了我这个查询格式错误错误:

{
"error": {
    "root_cause": [
        {
            "type": "parsing_exception",
            "reason": "[exists] query malformed, no start_object after query name",
            "line": 1,
            "col": 37
        }
    ],
    "type": "parsing_exception",
    "reason": "[exists] query malformed, no start_object after query name",
    "line": 1,
    "col": 37
},
"status": 400
}

如果存在字段,如何删除所有文档?

【问题讨论】:

    标签: database elasticsearch


    【解决方案1】:

    您的查询中有错误:

    您不必使用bool 查询,只需使用以下查询即可。

    {
    "query": {
      "exists": {
        "field": "name"
      }
     }
    }
    

    阅读this了解更多详情。

    希望这会有所帮助!

    【讨论】:

      【解决方案2】:

      您不需要将存在包装在布尔值中。 试试这个

       {
        "query": { 
          "exists": {
            "field": "field_name"
          }
        }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-05-03
        • 2015-08-31
        • 2019-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多