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
    }
  }
}

ES的聚合分析和钻取功能

再次查询的结果:
ES的聚合分析和钻取功能
第二个:对家庭地址是beijing的,计算兴趣地的数量

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

查询结果
ES的聚合分析和钻取功能

第三:先分组,再计算每组的平均值,计算每个join下面china的平均值

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

运行结果
ES的聚合分析和钻取功能

第四:计算每个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"
          }
        }
      }
    }
  }
}

运行结果如下
ES的聚合分析和钻取功能

第五:按照指定价格的范围区间进行分组,然后几个每组内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"
              }
            }
          }
        }
      }
    }
  }
}

运行结果如下
ES的聚合分析和钻取功能