我正在尝试查找已用时间已用时间:持续时间B/w now
和createdTime
为了传递current_time(即now
),我已经将其添加到params
中,并且可以通过写入params['now']
在source
字段中访问它。问题是params['now']
的值是字符串,而不是日期类型
下面的示例的工作原理是我添加了doc['updatedTime']
,代替了params['now']
,如何让它与params['now']
一起工作
工作中
GET entity.incident_action_item/_search
{
"script_fields": {
"timeElapsed": {
"script": {
"source": "doc['updatedTime'].value.toInstant().getEpochSecond() - doc['createdTime'].value.toInstant().getEpochSecond()",
"params": {
"now": "2022-03-31T17:18:28.153+0530"
}
}
}
}
}
不工作
GET entity.incident_action_item/_search
{
"script_fields": {
"timeElapsed": {
"script": {
"source": "params['now'].value.toInstant().getEpochSecond() - doc['createdTime'].value.toInstant().getEpochSecond()",
"params": {
"now": "2022-03-31T17:18:28.153+0530"
}
}
}
}
}
我已经尝试了多种组合,并尝试了不同的方法支持的无痛语言,我是不能让它的工作
我遇到过一个或另一个例外
2条答案
按热度按时间qpgpyjmq1#
Tldr;
这是一个格式问题。
params[now]
保存一个字符串类型值。您需要将该字符串转换为ZonedDateTime
或DateTime
。将字符串转换为区域日期时间
我一直在使用中提供的
painless Lab
来运行以下代码。h9a6wy2h2#