gpt4 book ai didi

java - Elasticsearch 聚合查询没有给出预期的输出

转载 作者:行者123 更新时间:2023-11-29 05:20:16 25 4
gpt4 key购买 nike

我正在尝试对包含日期时间、CPU 时间和服务器名称的文档进行聚合。我想找到最新日期的平均 CPU 时间。我有以下查询,它部分有效,它给了我平均 CPU 时间,但不是在最新日期,它只是随机选择日期。

client.prepareSearch("myindex").
setTypes("mytype").
setQuery(
QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(),
FilterBuilders.andFilter(FilterBuilders.termFilter("server","x")))).
addAggregation(AggregationBuilders.avg("cpu_agg")
.field("dt_time").field("cpu_time"))
.get()

请指导。我想要最近日期的平均 CPU 时间,比如今天的日期。我是 ElasticSearch 的新手。提前致谢。

最佳答案

   client.prepareSearch("myindex").
setTypes("mytype").
setQuery(
QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(),
FilterBuilders.andFilter(FilterBuilders.termFilter("server","x")))).
addAggregation(AggregationBuilders.avg("cpu_agg")
.field("dt_time").field("cpu_time"))
.get()

看部分(字段一开始设置为dt_time,替换为cpu_time),表示聚合是针对cpu_time构建的,

如果你想获得今天日期的 cpu 时间,那么一种方法是使用日期过滤器,

       FilterBuilders.andFilter(FilterBuilders.termFilter("server","x"),FilterBuilders.rangeFilter("dt_time").to(to).from(from))))

对于你的问题,from = to = today_date (or last date)

最后,

client.prepareSearch("myindex").
setTypes("mytype").
setQuery(
QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(),
FilterBuilders.andFilter(FilterBuilders.termFilter("server", "x"), FilterBuilders.rangeFilter("dt_time").to("to").from("from")))).
addAggregation(AggregationBuilders.avg("cpu_agg")
.field("cpu_time"))
.get();

关于java - Elasticsearch 聚合查询没有给出预期的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25105081/

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