【发布时间】:2014-12-19 11:27:41
【问题描述】:
有没有办法简化和优化以下查询:
{
"query": {
"filtered": {
"filter": {
"and": [
{
"range": {
"ts": {
"gte": "2014-12-18",
"lte": "2014-12-18"
}
}
}
]
},
"query": {
"match": {
"track_events.event": "render"
}
}
}
},
"aggs": {
"per_type": {
"terms": {
"field": "type",
"order": {
"_count": "desc"
},
"size": 0
},
"aggs": {
"per_hour": {
"terms": {
"script": "(doc[\"track_events.ts\"].value - doc[\"ts\"].value)/(1000 * 3600)",
"order": {
"_count": "desc"
},
"size": 0
}
}
}
}
}
}
elasticsearch 中的索引包含字段为track_events.ts 和ts 的文档。目的是计算在track_events.ts 和ts 之间的每小时间隔中存在多少次。
示例响应:
"buckets": [{
"key": "0",
"doc_count": 67736997
},
{
"key": "1",
"doc_count": 7193214
},
{
"key": "2",
"doc_count": 3406966
},
{
"key": "3",
"doc_count": 1988135
}]
}
这意味着67736997计数发现时差小于1小时,7193214计数时差小于2小时,等等。
【问题讨论】:
标签: elasticsearch