如何启用elasticsearch返回聚合,包括响应中的名称

时间:2016-09-30 09:48:40

标签: elasticsearch

我正在使用elasticsearch对数据集执行一些聚合(by_shop和by_category)。问题是我得到了响应,其中没有指定每个agg的名称,因此很难解析响应。

查询

      "aggregations" : {
        "byShop" : {
          "terms" : {
            "field" : "shopName",
            "size" : 0
          }
        },
        "byCategory" : {
          "terms" : {
            "field" : "category",
            "size" : 0
          }
        }
     }

推迟

"aggs": [
    [
      {
        "name": "bucket",
        "count": 5075,
        "key": "shop1"
      },
      {
        "name": "bucket",
        "count": 1,
        "key": "shop2"
      }
    ],
    [
      {
        "name": "bucket",
        "count": 11,
        "key": "Jewelry & Watches"
      },
      {
        "name": "bucket",
        "count": 1,
        "key": "Home & Garden/Home Décor"
      }
    ]

理想情况下,我希望看到以下内容:

"aggregations": {
    "byShop": {
      "buckets": [
        {
          "count": 5075,
          "key": "shop1"
        },
        {
          "count": 1,
          "key": "shop2"
        }
     ]
   },
   "byCategory": {
      "buckets": [
        {
         "count": 11,
         "key": "Jewelry & Watches"
        },
        {
         "count": 11,
         "key": "Home & Garden/Home Décor"
        }
      ]
    }
  }

修改

productResponse.getAggs().add(searchResult.getAggregations().getTermsAggregation("ByCategory").getBuckets());
        productResponse.getAggs().add(searchResult.getAggregations().getTermsAggregation("ByShopname").getBuckets());

其中searchResult持有Elastcisearch的回复。似乎getBucket()修剪了aggs的名称,对吧?

0 个答案:

没有答案