gpt4 book ai didi

java - Elasticsearch 和 Java API 中时间戳字段的每小时聚合

转载 作者:太空宇宙 更新时间:2023-11-04 10:53:22 25 4
gpt4 key购买 nike

是否可以使用 Elasticsearch Rest HL 客户端使用术语聚合和内联脚本从时间戳字段检索每小时的存储桶。

https://discuss.elastic.co/t/hourly-aggregation-for-timestamp-and-java-api-irrespective-of-date/109575

我们如何使用 Elasticsearch Java HL Rest 客户端实现以下查询?

# script in terms aggs.
GET /pixeluidevent/uidevent/_search
{
"size": 0,
"query": {
"bool": {
"must": [ { "match": { "name": "testName" }}]
}
},
"aggs": {
"BY_DAYOFWEEK": {
"terms": {
"script": {
"lang": "painless",
"inline": "doc['eventTime'].date.hourOfDay"
}
}
}
}
}

部分回复

"buckets": [
{
"key": "6",
"doc_count": 36821
},
{
"key": "0",
"doc_count": 34000
},
{
"key": "3",
"doc_count": 30153
},
{
"key": "2",
"doc_count": 29452
}
]

谢谢

最佳答案

使用存储的脚本实现它。

// Code 
Script _script = new Script(ScriptType.STORED, "painless", "doc['eventTime'].date.dayOfWeek", new HashMap<>());

TermsAggregationBuilder termsAggBuilderForDOW = AggregationBuilders.terms("by_day_of_week").script(_script);
termsAggBuilderForDOW.size(7); // 7 size

有关详细信息的 PFA 链接。 https://discuss.elastic.co/t/hourly-aggregation-for-timestamp-and-java-api-irrespective-of-date/109575/8

关于java - Elasticsearch 和 Java API 中时间戳字段的每小时聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47568621/

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