5

行数を取得し、時間、日、または月ごとにグループ化する方法はありますか。

たとえば、メッセージがあるとします

_source{
"timestamp":"2013-10-01T12:30:25.421Z",
"amount":200
}
_source{
"timestamp":"2013-10-01T12:35:25.421Z",
"amount":300
}
_source{
"timestamp":"2013-10-02T13:53:25.421Z",
"amount":100
}
_source{
"timestamp":"2013-10-03T15:53:25.421Z",
"amount":400
}

{date, sum} の行だけを取得する方法はありますか (必ずしもこの形式である必要はありません。これを達成できる方法があるかどうか疑問に思っています)。

{
{"2013-10-01T12:00:00.000Z", 500},
{"2013-10-02T13:00:00.000Z", 100},
{"2013-10-03T15:00:00.000Z", 400}
}

ありがとうございました

4

1 に答える 1

9

集計で試してください。

{     
  "aggs": {
    "amount_per_month": {
      "date_histogram": {
        "field": "timestamp",
        "interval": "week"
      },
      "aggs": {
        "total_amount": {
          "sum": {
            "field": "amount"
          }
        }
      }
    }
  }
}

さらに、インデックスの数を数えたい場合は、合計コンテンツを次のように置き換えます。

"sum": {
  "script": "1"
}

それが役に立てば幸い。

于 2015-09-14T07:14:35.810 に答える