1. 程式人生 > >ES的聚合分析和鑽取功能

ES的聚合分析和鑽取功能

第一:計算每個興趣點的同學個數

GET /employee/user/_search
{
  "size": 0, 
  "aggs": {
    "group_by_join": {
      "terms": {
        "field": "join"
      }
    }
  }
}

執行以後就出現瞭如下的錯誤,這個上面標紅的那個地方講到了需要將這個引數設定為true
這是由於fielddata是預設關閉的,需要在mapping的時候開啟
開啟的方法有

PUT /employee/_mapping/user
{
  "properties": {
    "join": {
      "type": "text",
      "fielddata": true
    }
  }
}

在這裡插入圖片描述

再次查詢的結果:
在這裡插入圖片描述
第二個:對家庭地址是beijing的,計算興趣地的數量

GET /employee/user/_search
{
  "size": 0,
  "query": {
    "match": {
      "addr": "beijing"
    }
  },
  "aggs": {
    "all_join": {
      "terms": {
        "field": "join"
      }
    }
  }
}

查詢結果
在這裡插入圖片描述

第三:先分組,再計算每組的平均值,計算每個join下面china的平均值

GET /employee/user/_search
{
  "size": 0,
  "aggs": {
    "group_by_join": {
      "terms": {
        "field": "join"
      },
      "aggs": {
        "avg_china": {
          "avg": {
            "field": "china"
          }
        }
      }
    }
  }
}

執行結果
在這裡插入圖片描述

第四:計算每個join下的china平均成績,並且按照平均成績降序排序

GET /employee/user/_search
{
  "size": 0,
  "aggs": {
    "group_by_join": {
      "terms": {
        "field": "join",
        "order": {
          "avg_china": "desc"
        }
      },
      "aggs": {
        "avg_china": {
          "avg": {
            "field": "china"
          }
        }
      }
    }
  }
}

執行結果如下
在這裡插入圖片描述

第五:按照指定價格的範圍區間進行分組,然後幾個每組內join進行分組,最後計算每組的平均成績

GET /employee/user/_search
{
  "size": 0,
  "aggs": {
    "groupByChina": {
      "range": {
        "field": "china",
        "ranges": [
          {
            "from": 50,
            "to": 60
          },
          {
            "from": 60,
            "to": 70
          },
          {
            "from": 70,
            "to": 80
          }
        ]
      },
      "aggs": {
        "groupByjoin": {
          "terms": {
            "field": "join"
          },
          "aggs": {
            "avgChina": {
              "avg": {
                "field": "china"
              }
            }
          }
        }
      }
    }
  }
}

執行結果如下
在這裡插入圖片描述