gpt4 book ai didi

elasticsearch - ElasticSearch查询检查2个时间范围差异

转载 作者:行者123 更新时间:2023-12-02 22:54:56 25 4
gpt4 key购买 nike

感谢您抽出宝贵时间阅读此问题。

我有一个alert json对象,我将其存储到ES中,如下所示:

{
"generetedOn": "2019-09-16T14:05:45.456Z",
"receivedOn": "2019-09-16T14:05:45.456Z"
}

数据来自SQS队列,有时我无法及时获取。

我想查询多少个文档具有更大的滞后时间(介于generateOn和ReceivedOn之间),然后为10分钟。

我的确从ES文档中研究了这种可能性,但没有找到解决方法。

最佳答案

您可以使用脚本字段来查找差异大于指定值的文档:

GET /_search
{
"query": {
"bool" : {
"filter" : {
"script" : {
"script" : {
"source": "(doc['receivedOn'].value.getMillis()-doc['generetedOn'].value.getMillis() ) > 10*60*1000",
"lang": "painless"
}
}
}
}
}
}

相关文档为 here

如果要对时差执行操作,也可以添加脚本字段:
GET /_search
{
"script_fields": {
"diff": {
"script": {
"lang":"painless",
"source":"(doc['receivedOn'].value.getMillis()-doc['generetedOn'].value.getMillis() )==0"
}
}
}
}

关于elasticsearch - ElasticSearch查询检查2个时间范围差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57958693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com