elasticsearch 多列 聚合 歸類(類似 sql group by)

說明:省份的字段是province_id,是個int類型(es裏面對應爲long)。另外id是string,amount是double。
不能對string求sum等運算。
且,es的歸類是從外向內的。先處理外層的,再處理內層的。

以省份進行分類,查看每個省份下的訂單數量。

{
  "fields": [
    "show_status"
  ],
  "size": 0,
  "aggs": {
    "_result": {
      "terms": {
        "field": "province_id",
        "size": 100
      },
      "aggs": {
        "result": {
          "value_count": {
            "field": "id"
          }
        }
      }
    }
  }
}

以省份進行分類,查看每個省份下的訂單金額總和。

{
  "fields": [
    "show_status"
  ],
  "size": 0,
  "aggs": {
    "_result": {
      "terms": {
        "field": "province_id",
        "size": 100
      },
      "aggs": {
        "result": {
          "sum": {
            "field": "amount"
          }
        }
      }
    }
  }
}

注:這是elasticsearch的功能,有一些公司是在lucene的基礎上自己開發的,能不能支持這樣的功能就不可而知了。請各位注意了,避免強行裝逼失敗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章