【发布时间】:2018-02-22 17:56:13
【问题描述】:
我有下面给出的查询,它应该找到给定时间范围内的平均条目数,即从 15:00 到 16:00。
此查询无法正常工作。如何指示小时范围(不含日期)并找到每个该范围的平均条目数?
POST /myindex/_search
{
"size": 0,
"query": {
"bool": {
"filter": [
{"term": {"EventId": "11"}},
{"term": {"EventType": "Type1"}}
]
}
},
"aggs": {
"range": {
"date_range": {
"field": "Datetime",
"ranges": [
{
"from": "16:00-1H/H",
"to": "16:00/H"
}
]
}
}
}
}
我应该使用移动平均线吗?怎么样?
我试过了,但如果有人能帮我完成这个查询,我将不胜感激。我不知道"value_count" : { "field" : "EventHour"} 是否是计算条目数的正确方法。如何在此查询中正确添加小时范围?:
POST /myindex/_search
{
"size": 0,
"query": {
"bool": {
"filter": [
{"term": {"EventId": "11"}},
{"term": {"EventType": "Type1"}},
{
"script": {
"script": "doc.date.date.getHourOfDay() >= min && doc.date.date.getHourOfDay() <= max",
"params": {
"min": 15,
"max": 16
}
}
}
]
}
},
"aggs": {
"hourly_intensity": {
"date_histogram": {
"field": "Datetime",
"interval": "hour"
},
"aggs": {
"count_of_events": {
"value_count" : { "field" : "EventHour"}
}
}
},
"hourly_avg_count": {
"avg_bucket": {
"buckets_path": "hourly_intensity>count_of_events"
}
}
}
}
【问题讨论】:
标签: elasticsearch lucene elasticsearch-5