gpt4 book ai didi

elasticsearch - 在Elasticsearch索引中选择两个属性之间的平均时间

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

给定带有两个日期字段的elasticsearch索引,我如何查询这两个日期之间的平均时间?

{
"mappings": {
"properties": {
"dateInserted": {
"type": "date",
"format": "dateOptionalTime"
},
"dateUpdated": {
"type": "date",
"format": "dateOptionalTime"
}
}
}
}
[
{
"dateInserted": "2020-10-01 00:00:00",
"dateUpdated": "2020-10-01 01:00:00"
}, {
"dateInserted": "2020-10-01 02:00:00",
"dateUpdated": "2020-10-01 04:00:00"
}
]
文档A的间隔为一小时,文档B的间隔为两小时,因此预期结果为1.5小时。

最佳答案

avg aggregation脚本应该可以:

{
"size": 0,
"aggs": {
"avg_duration": {
"avg": {
"script": {
"source": """
def duration = doc.dateUpdated.value.getMillis() - doc.dateInserted.value.getMillis();
return duration / (float) (1000*60*60)
"""
}
}
}
}
}
或者,更紧凑:
{
...
"source": "def duration = doc.dateUpdated.value.getMillis() - doc.dateInserted.value.getMillis(); return duration / (float) (1000*60*60)"
...
}

关于elasticsearch - 在Elasticsearch索引中选择两个属性之间的平均时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64266958/

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