gpt4 book ai didi

elasticsearch - Elasticsearch一个月内特定小时的总和

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

我有一个带有以下字段的elasticsearch服务器:timestampuserbytes_down(以及其他)

我只想在一个小时介于上午8点至晚上8点之间的情况下,为一个月的用户总计byte_down值

我可以通过以下查询获得带有日期直方图的每日总计(我在这里使用的是perl API),但是找不到解决方法,可以将每天的时间减少到小时范围内

my $query = {
index => 'cm',
body => {
query => {
filtered => {
query => {
term => {user => $user}
},
filter => {
and => [
{
range => {
timestamp => {
gte => '2014-01-01',
lte => '2014-01-31'
}
}
},
{
bool => {
must => {
term => { zone => $zone }
}
}
}
]
}
}
},
facets => {
bytes_down => {
date_histogram => {
field => 'timestamp',
interval => 'day',
value_field => 'downstream'
}
}
},
size => 0
}
};

谢谢
戴尔

最佳答案

我认为您需要使用 script 过滤器而不是range过滤器,然后需要将其放在构面的facet_filter部分中:

"facet_filter" => {
"script" => {
"script" => "doc['timestamp'].date.getHourOfDay() >= 8 &&
doc['timestamp'].date.getHourOfDay() < 20"
}
}

关于elasticsearch - Elasticsearch一个月内特定小时的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23258534/

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