基于字段(可以是文本/字符串)的Elasticsearch订单聚合存储桶

时间:2018-10-22 13:09:35

标签: elasticsearch

我的文档具有类别ID。

这是我的汇总查询:

"aggs": {
"categories": {
  "filter": {
    "bool": {
      "must": [
        {
          "exists": {
            "field": "price"
          }
        }
      ]
    }
  },
  "aggs": {
    "categories": {
      "terms": {
        "field": "category_id",
        "order": {
          "_count": "desc"
        },
        "size": 15
      }
    }
  }
}    

它产生以下结果:

"categories" : {
  "doc_count" : 92485,
  "categories" : {
    "doc_count_error_upper_bound" : 0,
    "sum_other_doc_count" : 4780,
    "buckets" : [ {
      "key" : 5053,
      "doc_count" : 21827
    }, {
      "key" : 5413,
      "doc_count" : 15760
    }, {
      "key" : 5057,
      "doc_count" : 12473
    }, {
      "key" : 77978,
      "doc_count" : 11388
    }, {
      "key" : 5030,
      "doc_count" : 9898
    }, {
      "key" : 5055,
      "doc_count" : 2492
    }, {
      "key" : 8543,
      "doc_count" : 2461
    }, {
      "key" : 5684,
      "doc_count" : 2106
    }, {
      "key" : 5050,
      "doc_count" : 2001
    }, {
      "key" : 8544,
      "doc_count" : 1803
    }, {
      "key" : 5049,
      "doc_count" : 1635
    }, {
      "key" : 5054,
      "doc_count" : 1284
    }, {
      "key" : 5035,
      "doc_count" : 977
    }, {
      "key" : 8731,
      "doc_count" : 817
    }, {
      "key" : 8732,
      "doc_count" : 783
    } ]
  }
}    

是否有可能获得响应,以便按category_id或任何其他字段对存储区进行排序?发布存储区,因为我只想选择15个具有最大doc_count的存储区。

如果可能的话,还有一种方法可以基于文本/字符串字段。

我尝试了子聚合,但无法弄清楚。

0 个答案:

没有答案