elasticsearch - elasticsearch查询问题,范围查询格式错误,预期为END_OBJECT,但找到FIELD_NAME

标签 elasticsearch

我无法弄清楚此查询出了什么问题。 “range”和“exists”都是独立工作的,但是在一起我得到了parsing expectionrange malformed query, expected END_OBJECT but found FIELD_NAME。有人可以找出这个查询有什么问题吗?

{
"query": {
  "range":{
     "@timestamp":{
        "gte":"2019-08-04T11:00:00",
        "lt":"2019-10-04T12:00:00"
     }
  },
  "exists": {
      "field": "params.zone"
  }  

},
"_source": ["@timestamp", "params.zone"]
}

最佳答案

如果您想像使用rangeexists一样组合多个查询,则需要使用bool query并确定哪些子句是必需的(must),可选的(should),过滤器(filter),或者不应在其中显示结果(must_not)

可行的查询看起来像这样(在此示例中,you're子句是必需的):

{
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "@timestamp": {
              "gte": "2019-08-04T11:00:00",
              "lt": "2019-10-04T12:00:00"
            }
          }
        },
        {
          "exists": {
            "field": "params.zone"
          }
        }
      ]
    }
  },
  "_source": [
    "@timestamp",
    "params.zone"
  ]
}

关于elasticsearch - elasticsearch查询问题,范围查询格式错误,预期为END_OBJECT,但找到FIELD_NAME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58365722/

相关文章:

elasticsearch - Elasticsearch 中的匹配数组

ruby-on-rails - Faraday::Elasticsearch 的 SSLError

elasticsearch - Kibana 不需要的千位分隔符

hadoop - ResourceManager卡在接受状态

elasticsearch - 内联脚本包含算术的观察者条件失败

php - Elastic Search 中如何应用过滤器?

Elasticsearch:路径 [messages] 下的嵌套对象不是嵌套类型

elasticsearch - 从ElastiSearch的Java API中的SearchResponse中排除字段

elasticsearch - 结合两个Elasticsearch查询

elasticsearch - 如何为我的应用程序设计弹性指数?