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

标签 java elasticsearch

我正在尝试对包含日期时间、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/

相关文章:

java - Apache Camel 的 @Consume 如何在 Spring Boot 项目中进行映射?

java - 我无法在Java游戏android中的两个对象之间发生碰撞

java - 显示可编辑整数数组的最佳格式化程序? (可以从0开始)

elasticsearch - 确保群集状态为绿色的最小节点数是多少?

elasticsearch - Elasticsearch自定义分析器问题

java - EJB Façade 调用另一个 EJB 中的方法

java - 使用mockito设置AWS环境变量的替代方法

join - 如何使用 ElasticSearch 执行 "join"/"sub-query"?

elasticsearch - elasticsearch:elasticsearch过程的最大文件描述符[1024]太低,至少增加到[65536]

c#-4.0 - NEST elasticsearch -C# - 区分大小写搜索