嗨,我正在尝试按照 sql 查询对弹性搜索进行查询,我想使用 Java API 实现相同的逻辑
select mimetype,count(*) from table group by mimetype
现在我有以下 Java 代码,但它没有返回预期的输出
SearchResponse response = client.prepareSearch().setTypes("table")
.setQuery(matchAllQuery())
.addAggregation(terms("mimetype").field("mimetype").size(0).order(Terms.Order.count(false)))
.execute().actionGet();
Terms terms = response.getAggregations().get("mimetype");
Collection<Terms.Bucket> buckets = terms.getBuckets();
请指导我是弹性搜索的新手。
编辑我想要下面 json 的密钥和 doc_count -
"aggregations": {
"mimeTypeGroup": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "miscellaneous",
"doc_count": 4
},
{
"key": "application",
"doc_count": 1
},
{
"key": "audio",
"doc_count": 1
},
{
"key": "text",
"doc_count": 1
}
]
}
}
你所拥有的是一个实例 StringTerms.Bucket
将key
存储在termBytes
您可以使用它检索
bucketInstance.getKey()
并像 bucketInstance.getDocCount()
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句