Tho*_*asC 21 java buckets elasticsearch
有没有办法使用java API检索搜索响应中的聚合桶?
{
"took" : 185,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 200,
"max_score" : 1.0,
"hits" : [...]
},
"aggregations" : {
"agg1" : {
"buckets" : [...]
},
"agg2" : {
"buckets" : [...]
}
}
}
Run Code Online (Sandbox Code Playgroud)
目前,有可能获得聚合但我无法弄清楚如何获得桶.
当前1.0版本的ElasticSearch(v1.0.0.Beta2)仍然是测试版,也许这个功能仍然需要添加,但也没有找到关于这一点的信息.
mco*_*lin 35
查看Github上的ES源代码,我在他们的测试中看到以下内容:
SearchResponse response = client().prepareSearch("idx").setTypes("type")
.setQuery(matchAllQuery())
.addAggregation(terms("keys").field("key").size(3).order(Terms.Order.count(false)))
.execute().actionGet();
Terms terms = response.getAggregations().get("keys");
Collection<Terms.Bucket> buckets = terms.getBuckets();
assertThat(buckets.size(), equalTo(3));
Run Code Online (Sandbox Code Playgroud)
如果有人想知道访问实际文档,那么代码可能有所帮助.
Terms terms = response.getAggregations().get("agg1");
Collection<Terms.Bucket> buckets = terms.getBuckets();
for (Bucket bucket : buckets) {
System.out.println(bucket.getKeyAsText() +" ("+bucket.getDocCount()+")");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24261 次 |
| 最近记录: |