平均值、總和、最大、最小、數(shù)量
在es中,所有的聚合查詢都是放在aggs中進(jìn)行的。平均值、總和、最大、最小、數(shù)量對(duì)應(yīng)的關(guān)鍵字分別是:avg、sum、max、min、value_count
POST /bank/_search
{
"query": {
"match": {
"address": "mill"
}
},
"aggs": {
"ageAvg": {
"avg": {
"field": "age"
}
},
"ageSum": {
"sum": {
"field": "age"
}
},
"ageMax":{
"max": {
"field": "age"
}
},
"ageMin":{
"min": {
"field": "age"
}
},
"ageCount":{
"value_count": {
"field": "age"
}
}
},
"size": 0
}
分組
分組用到的關(guān)鍵字是terms
POST /bank/_search
{
"query": {
"match": {
"address": "mill"
}
},
"aggs": {
"ageGroup": {
"terms": {
"field": "age",
"size": 3
}
}
},
"size": 0
}
上面語句中的size:3,指的是分組后,只展示前三個(gè)分組內(nèi)容。size:0,指的是所有query查詢結(jié)果,也就是原始數(shù)據(jù),不需要展示。此外,還可以對(duì)分組內(nèi)容進(jìn)行排序。
1.分組后,按分組內(nèi)的文檔數(shù)量排序
POST /bank/_search
{
"aggs": {
"ageGroup": {
"terms": {
"field": "age",
"order": {
"_count": "asc"
}
}
}
},
"size": 0
}
2.分組后,按分組字段排序
POST /bank/_search
{
"aggs": {
"ageGroup": {
"terms": {
"field": "age",
"order": {
"_key": "desc"
}
}
}
},
"size": 0
}
3.顯示分組后,文檔數(shù)量大于60的
POST /bank/_search
{
"aggs": {
"ageGroup": {
"terms": {
"field": "age",
"min_doc_count": 60
}
}
},
"size": 0
}
分組+子聚合
先按age分組,之后統(tǒng)計(jì)分組內(nèi)的平均值和總和。
POST /bank/_search
{
"query": {
"match": {
"address": "mill"
}
},
"aggs": {
"ageAgg": {
"terms": {
"field": "age",
"size": 3
},
"aggs": {
"ageAvg": {
"avg": {
"field": "age"
}
},
"ageSum": {
"sum": {
"field": "age"
}
}
}
}
},
"size": 0
}
分段分組+子聚合
先按age分組,分成18-28、28-38兩組。之后統(tǒng)計(jì)各組的最小值和平均值。
POST /bank/_search
{
"query": {
"match": {
"address": "mill Road"
}
},
"aggs": {
"ageGroup": {
"range": {
"field": "age",
"ranges": [
{
"from": 18,
"to": 28
},
{
"from": 28,
"to": 38
}
]
},
"aggs":{
"ageMin":{
"min": {
"field": "age"
}
},
"ageAve":{
"avg": {
"field": "age"
}
}
}
}
},
"size": 0
}
指定分組+聚合
查詢?nèi)?,但分組時(shí)候,只統(tǒng)計(jì)age=30的所有文檔的平均值,最大最小等數(shù)據(jù),用stats關(guān)鍵字代表。
POST /bank/_search
{
"aggs": {
"ageGroup": {
"filter": {
"term": {
"age": "30"
}
},
"aggs": {
"stat": {
"stats": {
"field": "age"
}
}
}
}
},
"size": 0
}
多種聚合結(jié)果統(tǒng)一查詢
這里的多種聚合,指的是常用的平均值、最大最小、總和等。除了開始講到的min、max、avg等關(guān)鍵字外,還可以用stats關(guān)鍵字。一個(gè)stats就可以包含min/max/avg/sum等。文章來源:http://www.zghlxwxcb.cn/news/detail-484237.html
POST /bank/_search
{
"query": {
"range": {
"age": {
"gte": 10,
"lte": 20
}
}
},
"aggs": {
"stat": {
"stats": {
"field": "age"
}
}
},
"size": 0
}
文章來源地址http://www.zghlxwxcb.cn/news/detail-484237.html
到了這里,關(guān)于Elasticsearch專欄-6.es基本用法-聚合查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!