kibana 6 脚本字段日期范围
kibana 6 scripted field dates ranges
使用 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 怎么办?
一个选项是在 bool should 子句中创建两个过滤器组合:
- 做 22 到 24 的人
- 做 0 到 6 的人
伪查询:
{
"query": {
"bool": {
"should": [
{
"range": {
"hour": {
"gte": 22
}
}
},
{
"range": {
"hour": {
"gte": 0,
"lte": 6
}
}
}
]
}
}
}
另一种选择是将脚本字段移动 6 小时
doc['@timestamp'].date.hourOfDay - 6
然后您可以简单地检查它是否在 16 到 24 之间。
使用 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 怎么办?
一个选项是在 bool should 子句中创建两个过滤器组合:
- 做 22 到 24 的人
- 做 0 到 6 的人
伪查询:
{
"query": {
"bool": {
"should": [
{
"range": {
"hour": {
"gte": 22
}
}
},
{
"range": {
"hour": {
"gte": 0,
"lte": 6
}
}
}
]
}
}
}
另一种选择是将脚本字段移动 6 小时
doc['@timestamp'].date.hourOfDay - 6
然后您可以简单地检查它是否在 16 到 24 之间。