![](/img/trans.png)
[英]Elasticsearch js with Node.js: How to return aggregated results from multiple indexes?
[英]Aggregated output from ElasticSearch
我正在使用 ElasticSearch 存儲大約 5000 萬條數據。 數據格式如下。
_id:5e444fc1c5e86c84d1044aeb
meter_id:"jhk"
date:2017-06-17T18:39:28.795+00:00
activePower:Object
unit:"kwh"
Active Power L1:"0"
Active Power L2:"0"
Active Power L3:"0"
Total Active Power:"5"
reactivePower:Object
apparentPower:Object
frequency:Object
thd:Object
現在我想取兩個日期之間的一部分數據,並根據單個日期對其進行分組,並將總有功功率字段添加到特定日期組。
預期產出
[
{ date: '04-19', totalActivePower: 5000},
{ date: '05-19', totalActivePower: 6000}
]
您可以使用date_histogram聚合
詢問
{
"size": 0,
"query": {
"range": { --> to filter between dates, you can also use filter aggregation
"date": {
"gte": "2017-06-16",
"lte": "2017-06-17"
}
}
},
"aggs": {
"perday": {
"date_histogram": { ---> will split documents on per day basis
"field": "date",
"interval": "day"
},
"aggs": {
"totalacticepower": { -- sum of field Total Active Power on that day
"sum": {
"field": "Total Active Power"
}
}
}
}
}
}
結果:
"aggregations" : {
"perday" : {
"buckets" : [
{
"key_as_string" : "2017-06-17T00:00:00.000Z",
"key" : 1497657600000,
"doc_count" : 1,
"totalacticepower" : {
"value" : 5.0
}
}
]
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.