2016-05-29 6 views
0

これは私がしたいものです。私はElasticsearchにいくつかの文書を含むインデックスを持っています。すべてのドキュメントには、deviceField(デバイスの名前)とpressionField(定期的にプレスの値)という2つのフィールドがあります。私は私の索引でデバイスごとの平均プレスを照会したいと思う。あなたはそれを単一のクエリで行う方法を知っていますか?実際、私はdeviceNameごとのクエリに一種のループを 'for'したくありません。私は何百万ものデバイスを持っているので、時間がかかりすぎます。Lucen/Elasticsearch:複数の値を持つフィールドのクエリ

ご協力いただきありがとうございます。

S

答えて

1

メトリック集計を使用する必要があります。あなたは、同じクエリですべてを一覧表示したい場合は、ここでsubaggregation

{ 
    "aggs" : { 
     "devices" : { 
      "terms" : { "field" : "deviceField" }, 
      "aggs" : { 
       "avg_pression" : { "avg" : { "field" : "pressionField" } } 
      } 
     } 
    } 
} 

を使用するドキュメントのリンクされています

https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-avg-aggregation.html

+0

こんにちはパブロは、お返事ありがとうございました。しかし、私はあなたのコードを使用してエラーが発生しました。 "type": "search_parse_exception"、 "reason": "[aggs]"にアグリゲータタイプ[avg_pression]が見つかりませんでした。あなたはこの問題を解決する方法を知っていますか? –

+0

おそらく、サブ集約は別の集約内になければなりません。私はコードを編集しました。今すぐやってみて下さい。問題が解決しない場合は、クエリを貼り付けて手助けをしてください。 –

+0

これはもう一度ありがとうございます! –

関連する問題