使用kibana 6.3
我创建了这个脚本字段,以仅从 YYYY-MM-DDT00:00:00
hour_utc:
doc['@timestamp'].date.hourOfDay
然后我可以创建一个执行此操作的过滤器:
在6到22之间过滤,对于我列出的任何日期,只能获得06-22的小时。这很好。但是我还需要能够做22到6
如果日期为01/01/2019至01/04/2019,则 过滤器6到22可以为您提供:
01/01/2019T06:00:00 to 01/01/2019T22:00:00
01/02/2019T06:00:00 to 01/02/2019T22:00:00
01/03/2019T06:00:00 to 01/03/2019T22:00:00
01/04/2019T06:00:00 to 01/04/2019T22:00:00
如果日期为01/01/2019至01/04/2019,则 过滤器22到06可以为您提供:
01/01/2019T22:00:00 to 01/02/2019T06:00:00
01/02/2019T22:00:00 to 01/03/2019T06:00:00
01/03/2019T22:00:00 to 01/04/2019T06:00:00
我的问题是我怎么做22-06?
答案 0 :(得分:0)
一个选择是创建两个合并在bool应该子句中的过滤器:
伪查询:
{
"query": {
"bool": {
"should": [
{
"range": {
"hour": {
"gte": 22
}
}
},
{
"range": {
"hour": {
"gte": 0,
"lte": 6
}
}
}
]
}
}
}
另一个选择是将您的脚本字段移动6小时
doc['@timestamp'].date.hourOfDay - 6
然后您可以简单地检查它在16到24之间。