ES1:搜索address中包含mill的所有人的年齡分佈以及平均年齡,但不顯示這些人的詳情
##搜索address中包含mill的所有人的年齡分佈以及平均年齡 GET /bank/_search { "query": { "match": { "address": "mill" } }, "aggs": {##針對query查詢結果做聚合 "ageAgg": {##自定義的聚合名字 "terms": {##聚合類型爲terms "field": "age",##針對age聚合 "size": 10##只取聚合結果的前10條 } } } }
返回結果:
{ "took" : 8, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 4, "relation" : "eq" }, "max_score" : 5.4032025, "hits" : [ { "_index" : "bank", "_type" : "account", "_id" : "970", "_score" : 5.4032025, "_source" : { "account_number" : 970, "balance" : 19648, "firstname" : "Forbes", "lastname" : "Wallace", "age" : 28, "gender" : "M", "address" : "990 Mill Road", "employer" : "Pheast", "email" : "[email protected]", "city" : "Lopezo", "state" : "AK" } }, { "_index" : "bank", "_type" : "account", "_id" : "136", "_score" : 5.4032025, "_source" : { "account_number" : 136, "balance" : 45801, "firstname" : "Winnie", "lastname" : "Holland", "age" : 38, "gender" : "M", "address" : "198 Mill Lane", "employer" : "Neteria", "email" : "[email protected]", "city" : "Urie", "state" : "IL" } }, { "_index" : "bank", "_type" : "account", "_id" : "345", "_score" : 5.4032025, "_source" : { "account_number" : 345, "balance" : 9812, "firstname" : "Parker", "lastname" : "Hines", "age" : 38, "gender" : "M", "address" : "715 Mill Avenue", "employer" : "Baluba", "email" : "[email protected]", "city" : "Blackgum", "state" : "KY" } }, { "_index" : "bank", "_type" : "account", "_id" : "472", "_score" : 5.4032025, "_source" : { "account_number" : 472, "balance" : 25571, "firstname" : "Lee", "lastname" : "Long", "age" : 32, "gender" : "F", "address" : "288 Mill Street", "employer" : "Comverges", "email" : "[email protected]", "city" : "Movico", "state" : "MT" } } ] }, "aggregations" : { "ageAgg" : {##聚合名字 "doc_count_error_upper_bound" : 0, "sum_other_doc_count" : 0, "buckets" : [ { "key" : 38,##age爲38的有2個 "doc_count" : 2 }, { "key" : 28,##age爲28的有1個 "doc_count" : 1 }, { "key" : 32, "doc_count" : 1 } ] } } }
ES2:在es1的基礎上,查返回結果的所有人的(那4個人)平均年齡
GET /bank/_search { "query": { "match": { "address": "mill" } }, "aggs": { "ageAgg": { "terms": { "field": "age", "size": 10 } }, "ageAvg":{ "avg": {##聚合類型avg "field": "age" } } } }
返回結果:
ES3:在es2的基礎上,查所有人的平均薪資
GET /bank/_search { "query": { "match": { "address": "mill" } }, "aggs": { "ageAgg": { "terms": { "field": "age", "size": 10 } }, "ageAvg":{ "avg": { "field": "age" } }, "balanceAvg":{ "avg": { "field": "balance" } } } }
ES4:不想看查到的結果只看聚合結果:指定分頁size爲0
GET /bank/_search { "query": { "match": { "address": "mill" } }, "aggs": { "ageAgg": { "terms": { "field": "age", "size": 10 } }, "ageAvg":{ "avg": { "field": "age" } }, "balanceAvg":{ "avg": { "field": "balance" } } }, "size": 0##返回數據0條 }
返回結果:
複雜聚合:按照年齡聚合,並查詢這些年齡段的這些人的平均薪資
在年齡聚合裏,添加子聚合查平均薪資
GET /bank/_search { "query": { "match_all": {} }, "aggs": { "ageAgg": { "terms": { "field": "age", "size": 3 }, "aggs": {##基於ageAgg繼續聚合 "ageAvg": { "avg": { "field": "balance" } } } } }, "size": 0 }
返回結果
{ "took" : 5, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 1000, "relation" : "eq" }, "max_score" : null, "hits" : [ ] }, "aggregations" : { "ageAgg" : { "doc_count_error_upper_bound" : 0, "sum_other_doc_count" : 820, "buckets" : [ { "key" : 31, "doc_count" : 61, "ageAvg" : { "value" : 28312.918032786885##年齡爲31的61個人的平均薪資 } }, { "key" : 39, "doc_count" : 60, "ageAvg" : { "value" : 25269.583333333332 } }, { "key" : 26, "doc_count" : 59, "ageAvg" : { "value" : 23194.813559322032 } } ] } } }
##查出所有年齡分佈,並且這些年齡段中M的平均薪資和F的平均薪資以及這個年齡段的總體平均薪資
GET /bank/_search { "query": { "match_all": {} }, "size": 0, "aggs": { "ageAgg": { "terms": { "field": "age", "size": 3##按照年齡聚合,結果只取前3個,多了看着不方便 }, "aggs": {#ageAgg的子聚合 "genderAgg": { "terms": { "field": "gender.keyword"##按照性別進行子聚合 }, "aggs": { "balanceAvg": { "avg": { "field": "balance"##性別基礎上的平均 } } } }, "balanceAvg": {##這個年齡段的總體平均薪資 "avg": { "field": "balance" } } } } } }
結果
{ "took" : 22, "timed_out" : false, "_shards" : { "total" : 1, "successful" : 1, "skipped" : 0, "failed" : 0 }, "hits" : { "total" : { "value" : 1000, "relation" : "eq" }, "max_score" : null, "hits" : [ ] }, "aggregations" : { "ageAgg" : { "doc_count_error_upper_bound" : 0, "sum_other_doc_count" : 820, "buckets" : [ { "key" : 31, "doc_count" : 61, "genderAgg" : { "doc_count_error_upper_bound" : 0, "sum_other_doc_count" : 0, "buckets" : [ { "key" : "M", "doc_count" : 35, "balanceAvg" : { "value" : 29565.628571428573 } }, { "key" : "F", "doc_count" : 26, "balanceAvg" : { "value" : 26626.576923076922 } } ] }, "balanceAvg" : { "value" : 28312.918032786885 } }, { "key" : 39, "doc_count" : 60, "genderAgg" : { "doc_count_error_upper_bound" : 0, "sum_other_doc_count" : 0, "buckets" : [ { "key" : "F", "doc_count" : 38, "balanceAvg" : { "value" : 26348.684210526317 } }, { "key" : "M", "doc_count" : 22, "balanceAvg" : { "value" : 23405.68181818182 } } ] }, "balanceAvg" : { "value" : 25269.583333333332 } }, { "key" : 26, "doc_count" : 59, "genderAgg" : { "doc_count_error_upper_bound" : 0, "sum_other_doc_count" : 0, "buckets" : [ { "key" : "M", "doc_count" : 32, "balanceAvg" : { "value" : 25094.78125 } }, { "key" : "F", "doc_count" : 27, "balanceAvg" : { "value" : 20943.0 } } ] }, "balanceAvg" : { "value" : 23194.813559322032 } } ] } } }