java - 使用 Java api 的 Elasticsearch 聚合

标签 java elasticsearch

您好,我正在尝试按照 sql 查询对 Elasticsearch 进行查询,我想使用 Java API 实现相同的逻辑

select dttime, avg(cpu) from table cpustats where server="X" and dttime="Y" group by dttime,cpu

现在我有以下 Java 代码,但它没有返回预期的输出

SearchResponse response = client.prepareSearch("cpuindex")
      .setTypes("cputype")
      .setQuery(QueryBuilders.matchAllQuery())
      .addAggregation(AggregationBuilders.terms("cpu_agg")
           .field("cpu").size(100))
      .execute().actionGet();

请指导我是 Elastic 搜索的新手。提前致谢。

最佳答案

我认为这会有所帮助。

SearchResponse response=
                client.prepareSearch("your_index_name_here").setQuery(QueryBuilders.filteredQuery(QueryBuilders.matchAllQuery(),
                FilterBuilders.andFilter(
                        FilterBuilders.termFilter("server","x"),
                        FilterBuilders.termFilter("dt_time","x")
                ))).addAggregation(
                AggregationBuilders.terms("dt_timeaggs").field("dt_time").size(100).subAggregation(
                        AggregationBuilders.terms("cpu_aggs").field("cpu").size(100)
                )
        ).setSize(0).get();

请验证。

关于java - 使用 Java api 的 Elasticsearch 聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24964361/

相关文章:

java - 即使请求正文中存在错误,BindingResult 也不会显示错误

java - 如何在java中获取表单文本框和图像值表单类型enctype ="multipart/form-data"

c# - 我可以向 Java 添加新功能,例如委托(delegate)、后期绑定(bind)等吗?

ruby - ElasticSearch Tire-如何配置为使用具有日期直方图构面的值字段?

elasticsearch - 获取最新的文档版本并汇总结果

Elasticsearch反向match_phrase

ruby-on-rails - 允许在带有轮胎的 ElasticSearch 中过滤的术语不存在

java - 无法使用 ElasticSearch Java API 检索嵌套对象

java - Android、java - 无法从 asynctask 更新变量

elasticsearch - ElasticSearch不会惩罚冗长的内容