gpt4 book ai didi

Elasticsearch 按星期几和小时聚合

转载 作者:行者123 更新时间:2023-12-04 05:49:20 25 4
gpt4 key购买 nike

我有以下类型的文件:

[{"msg":"hello", date: "some-date"},{"msg":"hi!", date: "some-date"}, ...

我想按星期几计算文档数。例如,周一发送了 x 条消息,周二发送了 y 条消息,依此类推。

我已经将 date_histogram 与聚合一起使用,但它每天都会返回文档。它确实返回了我的一天,但是说“星期三,22”和“星期三,29”作为单独的聚合文档返回。

这与 Elasticsearch - group by day of week and hour 有点相关,但该问题没有答案,所以我重新发布。
根据那里的建议,它要求我对 key_as_string 进行术语聚合,但我需要为每个对象添加 doc_count,而不仅仅是计算术语。我也不知道如何在嵌套聚合中使用 key_as_string。

这是我尝试过的:
"aggs" : {
"posts_over_days" : {
"date_histogram" : {
"field" : "created_time",
"interval": "day",
"format": "E"
}
}

最佳答案

this thread 已经解决了同样的问题。

根据您的问题调整解决方案,我们需要编写一个脚本来将日期转换为一天中的小时和一周中的某天:

Date date = new Date(doc['created_time'].value) ; 
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat('EEE, HH');
format.format(date)

并在查询中使用它:
{
"aggs": {
"perWeekDay": {
"terms": {
"script": "Date date = new Date(doc['created_time'].value) ;java.text.SimpleDateFormat format = new java.text.SimpleDateFormat('EEE, HH');format.format(date)"
}
}
}
}

关于Elasticsearch 按星期几和小时聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28989336/

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