0

我有两个名为“ride”和“audit_log”的索引,其中audit_log 是ride 的子项。我需要根据某些条件从 audit_log 表(索引)中获取时间戳的平均值。条件跨越父母和孩子。我试图执行的查询是:

curl -XGET ' http://localhost:9200/rides/audit_log/_search ' -d

{
   "size":0,
   "query":{
      "has_parent":{
         "parent_type":"ride",
         "query":{
            "match":{
               "ride_status":"Ride Completed"
            }
         }
      },
      "match":{
         "status":"Driver Confirmed"
      }
   },
   "aggs":{
      "avg_time":{
         "avg":{
            "field":"createdAt"
         }
      }
   }
}

这里ride_status 来自父表ride。

而且,我从这个 api 命中得到以下错误:

[has_parent] 查询格式错误,应为 [END_OBJECT] 但找到 [FIELD_NAME]","line":1,"col":107

4

1 回答 1

0

尝试使用term而不是match.

{
   "size":0,
   "query":{
      "has_parent":{
         "parent_type":"ride",
         "score" : true, <---- add this
         "query":{
           "term": {
            "ride_status":"Ride Completed"
           }
         }
      },
      "term": {
            "status":"Driver Confirmed"
       }
   },
   "aggs":{
      "avg_time":{
         "avg":{
            "field":"createdAt"
         }
      }
   }
}
于 2017-03-03T12:58:04.137 回答