java中弹性搜索聚合,用于弹性搜索中的所有索引

帕里塔波尔瓦尔

嗨,我正在尝试按照 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
                }
            ]
        }
    }

但我只得到文档计数而不是 Java 中的键名 - 在此处输入图片说明

拉胡尔

你所拥有的是一个实例 StringTerms.Bucket

key存储在termBytes您可以使用它检索

bucketInstance.getKey() 并像 bucketInstance.getDocCount()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章