我想将事件id传递给kibana/elastic search,并从@timestamp字段中查找此事件id的最小和最大日期。然后我想将日期范围设置为这些日期并显示所有结果。我想这是可行的。
我可以通过这个聚合得到最小值和最大值:
GET /filebeat-*/_search
{
"query": {
"match": {
"event_id": 1234
}
},
"aggs" : {
"min_date": {"min": {"field": "@timestamp" }},
"max_date": {"max": {"field": "@timestamp" }}
}
}
我可以通过搜索特定的日期范围得到结果:
GET /filebeat-*/_search
{
"query": {
"bool": {
"filter": {
"range": {"@timestamp": {"gte": "2020-09-11T13:35:35.000Z", "lte": "2020-09-24T20:35:07.000Z"}}
}
}
}
}
如何将两者结合起来,以便只更改事件id并具有自动日期范围类型功能?
编辑:
我可以做到:
GET /filebeat-*/_search
{
"query": {
"bool": {
"must": {
"match": {
"event_id": 1234
}
},
"filter": {
"range": {
"@timestamp": {
"lte": "2020-09-25",
"gte": "2020-09-24"
}
}
}
}
},
"aggs": {
"min_date": {
"min": {
"field": "@timestamp"
}
},
"max_date": {
"max": {
"field": "@timestamp"
}
}
}
}
但我想做的是:
GET /filebeat-*/_search
{
"query": {
"bool": {
"must": {
"match": {
"event_id": 1234
}
},
"filter": {
"range": {
"@timestamp": {
"lte": "max_date",
"gte": "min_date"
}
}
}
}
},
"aggs": {
"min_date": {
"min": {
"field": "@timestamp"
}
},
"max_date": {
"max": {
"field": "@timestamp"
}
}
}
}
但这会导致错误:“未能解析日期字段[min\u date]”是否可以使用聚合的最小值和最大值来定义日期范围?
1条答案
按热度按时间k3bvogb11#
由于您没有提供任何示例索引数据,因此在上应用范围查询
date
类型字段添加索引Map、数据、搜索查询和搜索结果的工作示例
索引Map:
索引数据:
搜索查询:
搜索结果: