2017-03-02 20 views
0

「ride」と「audit_log」の2つのインデックスがあります。ここで、audit_logは乗車の子です。私はいくつかの条件に基づいてaudit_logテーブル(インデックス)からタイムスタンプの平均をフェッチする必要があります。条件は、親と子の両方に及ぶ。私が実行しようとしているクエリは、次のとおりです。Elasticsearch:親子の条件付き集約

カール-XGET 'http://localhost:9200/rides/audit_log/_search' ride_statusここ

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

を-d親テーブルに乗ってからです。

そして、私はこのAPIヒットから、次のエラーを取得しています:[END_OBJECT]期待

[HAS_PARENT]不正な形式のクエリが、 [FIELD_NAME]」、 "行い":1、 "COLを": 107

答えて

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" 
     } 
     } 
    } 
} 
+0

私は提案を試みたが、それは動作しませんでした。私はHAS_PARENTがないことに気づきましたメインインデックスのクエリを処理します。 –

関連する問題