2017-07-18 11 views
0

私はスマートフォンでグループ化してからキャリアでグループ化するクエリを持っています。これらのネストされた集計の中で、その特定のスマートフォンの各キャリアの平均価格、評価、および速度を調べたいと思います。これは私の現在のクエリです:複数の平均集計を取得する

この現在のクエリ、私はというエラーを取得していますと
{ 
    "aggs": { 
    "group_by_smartphone": { 
     "terms": { 
     "field": "smartphone" 
     }, 
     "aggs": { 
     "group_by_carrier": { 
      "terms": { 
      "field": "carrier" 
      }, 
      "aggs": { 
      "group_by_avg_price": { 
       "avg": { 
       "field": "price" 
       } 
      } 
      }, 

      "group_by_rating":{ 
       "avg":{ 
       "field": "rating" 
       } 
      } 

     } 
     } 
    } 
    } 
} 

を「タイプ」:「parsing_exception」、 「理由」:「が見つかりました2件の集計タイプ

各平均の正しい結果を表示するには、どうすればこの問題を解決できますか?[group_by_carrier]の定義:[terms_and_reference]

答えて

1

代わりにこれを試してみてください:

{ 
    "aggs": { 
    "group_by_smartphone": { 
     "terms": { 
     "field": "smartphone" 
     }, 
     "aggs": { 
     "group_by_carrier": { 
      "terms": { 
      "field": "carrier" 
      }, 
      "aggs": { 
      "avg_price": { 
       "avg": { 
       "field": "price" 
       } 
      }, 
      "avg_rating":{ 
       "avg":{ 
       "field": "rating" 
       } 
      }, 
      "avg_speed":{ 
       "avg":{ 
       "field": "speed" 
       } 
      } 
      }  
     } 
     } 
    } 
    } 
} 

すべてのサブ集計が同じaggs構造体の内部に配置する必要があります。

+0

これを見ることができますか。https://stackoverflow.com/questions/45268131/finding-sum-of-average-sub-aggregations – user2896120

関連する問題