使用弹性搜索运行脚本的这种行为对我来说非常令人费解。我正在运行一个脚本来按时间过滤。我从这个elastic documentation获得了这些方法。
使用HoursOfDay的此脚本有效( date.hourOfDay )
{
"script": {
"script": {
"lang": "expression",
"source": "doc['@timestamp'].date.hourOfDay >= min && doc['@timestamp'].date.hourOfDay <= max",
"params": {
"min": 5,
"max": 8
}
}
}
}
然而,具有Minutes的脚本不会返回任何结果。的(date.minuteOfDay)
{
"script": {
"script": {
"lang": "expression",
"source": "doc['@timestamp'].date.minuteOfDay >= min && doc['@timestamp'].date.minuteOfDay <= max",
"params": {
"min": 300,
"max": 480
}
}
}
}
此外,我通过使用“ date.getHourOfDay()”和“ date.getMinutes()”来尝试此elastic document的其他方式,并且发现了类似的行为getHourOfDay返回结果,getMinutes()不返回。
我在这里遗漏了什么,或者在弹性级别是否有特定的配置来启用此方法。感谢。
答案 0 :(得分:0)
我认为在源代码中你可以尝试使用params.min和params.max来代替min和max