面试题答案
一键面试- 聚合查询策略:
- 使用时间字段进行按小时的时间桶(date histogram)聚合,以实现按时间窗口(每小时)分组。
- 在每个时间桶内,针对请求ID进行terms聚合,用于区分不同的请求ID。
- 在每个请求ID的terms聚合内,再针对日志级别进行terms聚合,统计每个日志级别在该请求ID和时间窗口内的出现次数。
- DSL语句:
{
"aggs": {
"hourly_buckets": {
"date_histogram": {
"field": "时间戳字段名",
"interval": "hour",
"format": "yyyy - MM - dd HH"
},
"aggs": {
"request_id_terms": {
"terms": {
"field": "请求ID字段名"
},
"aggs": {
"log_level_terms": {
"terms": {
"field": "日志级别字段名"
}
}
}
}
}
}
},
"size": 0
}
请将上述DSL语句中的“时间戳字段名”、“请求ID字段名”、“日志级别字段名”替换为实际日志数据中的对应字段名称。size: 0
表示不返回文档本身,只返回聚合结果。