AggregationTest.java 文件源码

java
阅读 42 收藏 0 点赞 0 评论 0

项目:es-sql 作者:
@Test
public void multipleGroupByTest() throws Exception {
    Set expectedAges = new HashSet<Integer>(ContiguousSet.create(Range.closed(20, 40), DiscreteDomain.integers()));

    Map<String, Set<Integer>> buckets = new HashMap<>();

    Aggregations result = query(String.format("SELECT COUNT(*) FROM %s/account GROUP BY gender,  terms('field'='age','size'=200,'alias'='age')", TEST_INDEX));
    Terms gender = result.get("gender");
    for(Terms.Bucket genderBucket : gender.getBuckets()) {
        String genderKey = genderBucket.getKey().toString();
        buckets.put(genderKey, new HashSet<Integer>());
        Terms ageBuckets = (Terms) genderBucket.getAggregations().get("age");
        for(Terms.Bucket ageBucket : ageBuckets.getBuckets()) {
            buckets.get(genderKey).add(Integer.parseInt(ageBucket.getKey().toString()));
        }
    }

    Assert.assertEquals(2, buckets.keySet().size());
    Assert.assertEquals(expectedAges, buckets.get("m"));
    Assert.assertEquals(expectedAges, buckets.get("f"));
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号