ES 查询忽略时间范围过滤器
ES query ignoring time range filter
我模仿了 kibana 如何进行查询搜索并提出了以下查询。基本上我正在寻找后 6 天的数据(包括那些没有数据的日子,因为我需要将它提供给图表)。但归还的水桶给我的不仅仅是那些日子。我想知道我要去哪里绞尽脑汁。
{
"version": true,
"size": 0,
"sort": [
{
"@timestamp": {
"order": "desc",
"unmapped_type": "boolean"
}
}
],
"_source": {
"excludes": []
},
"aggs": {
"target_traffic": {
"date_histogram": {
"field": "@timestamp",
"interval": "1d",
"time_zone": "Asia/Kolkata",
"min_doc_count": 0,
"extended_bounds": {
"min": "now-6d/d",
"max": "now"
}
},
"aggs": {
"days_filter": {
"filter": {
"range": {
"@timestamp": {
"gt": "now-6d",
"lte": "now"
}
}
},
"aggs": {
"in_bytes": {
"sum": {
"field": "netflow.in_bytes"
}
},
"out_bytes": {
"sum": {
"field": "netflow.out_bytes"
}
}
}
}
}
}
},
"stored_fields": [
"*"
],
"script_fields": {},
"docvalue_fields": [
"@timestamp",
"netflow.first_switched",
"netflow.last_switched"
],
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "( flow.src_addr: ( \"10.5.5.1\" OR \"10.5.5.2\" ) OR flow.dst_addr: ( \"10.5.5.1\" OR \"10.5.5.2\" ) ) AND flow.traffic_locality: \"private\"",
"analyze_wildcard": true,
"default_field": "*"
}
}
]
}
}
}
如果您将 range
过滤器放入聚合部分而查询中没有任何日期范围,将会发生的情况是您的聚合将 运行 对所有数据和指标进行按天分桶处理所有数据。
@timestamp
上的 range
查询应移至 query
部分,以便仅计算所需数据的聚合,即过去 6 天。
我模仿了 kibana 如何进行查询搜索并提出了以下查询。基本上我正在寻找后 6 天的数据(包括那些没有数据的日子,因为我需要将它提供给图表)。但归还的水桶给我的不仅仅是那些日子。我想知道我要去哪里绞尽脑汁。
{
"version": true,
"size": 0,
"sort": [
{
"@timestamp": {
"order": "desc",
"unmapped_type": "boolean"
}
}
],
"_source": {
"excludes": []
},
"aggs": {
"target_traffic": {
"date_histogram": {
"field": "@timestamp",
"interval": "1d",
"time_zone": "Asia/Kolkata",
"min_doc_count": 0,
"extended_bounds": {
"min": "now-6d/d",
"max": "now"
}
},
"aggs": {
"days_filter": {
"filter": {
"range": {
"@timestamp": {
"gt": "now-6d",
"lte": "now"
}
}
},
"aggs": {
"in_bytes": {
"sum": {
"field": "netflow.in_bytes"
}
},
"out_bytes": {
"sum": {
"field": "netflow.out_bytes"
}
}
}
}
}
}
},
"stored_fields": [
"*"
],
"script_fields": {},
"docvalue_fields": [
"@timestamp",
"netflow.first_switched",
"netflow.last_switched"
],
"query": {
"bool": {
"must": [
{
"query_string": {
"query": "( flow.src_addr: ( \"10.5.5.1\" OR \"10.5.5.2\" ) OR flow.dst_addr: ( \"10.5.5.1\" OR \"10.5.5.2\" ) ) AND flow.traffic_locality: \"private\"",
"analyze_wildcard": true,
"default_field": "*"
}
}
]
}
}
}
如果您将 range
过滤器放入聚合部分而查询中没有任何日期范围,将会发生的情况是您的聚合将 运行 对所有数据和指标进行按天分桶处理所有数据。
@timestamp
上的 range
查询应移至 query
部分,以便仅计算所需数据的聚合,即过去 6 天。