ES的聚合分析和鑽取功能
阿新 • • 發佈:2019-02-05
第一:計算每個興趣點的同學個數
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"
}
}
}
}
}
}
}
}
執行結果如下