網(wǎng)絡(luò)運(yùn)營(yíng)一個(gè)月工資寧波seo推廣方式排名
文章目錄
- Getting started
- 1、搜索 address 中包含 mill 的所有人的年齡分布以及平均年齡,但不顯示這些人的詳情
- 2、size=0不展示命中記錄,只展示聚合結(jié)果
- 3、按照年齡聚合,并且請(qǐng)求這些年齡段的這些人的平均薪資
- 4、查出所有年齡分布,并且這些年齡段中性別M的平均薪資和性別F的平均薪資以及這個(gè)年齡段的總體平均薪資
官方文檔
ES中的aggregations提供了數(shù)據(jù)分析能力,比如從數(shù)據(jù)中分組和提取數(shù)據(jù)的能力。最簡(jiǎn)單的聚合方法大致等于 SQL中GROU BY和SQL中的聚合函數(shù)。在 Elasticsearch 中,執(zhí)行聚合返回 hits(命中結(jié)果)的同時(shí)還返回聚合結(jié)果。
測(cè)試數(shù)據(jù)(account.json)
Getting started
基本語(yǔ)法,使用‘aggs
’屬性進(jìn)行標(biāo)識(shí)
NAME
:自定義當(dāng)前聚合的名稱AGG_TYPE
:指定當(dāng)前聚合的類型
GET bank/_search
{"aggs": {"NAME": {"AGG_TYPE": {}}}
}
1、搜索 address 中包含 mill 的所有人的年齡分布以及平均年齡,但不顯示這些人的詳情
1、搜索 address 中包含 mill 的所有人的年齡分布
GET bank/_search
{"query": {"match": {"address": "mill"}},"aggs": {"ageAgg": {"terms": {"field": "age","size": 10}}}
}
ageAgg
:自定義的當(dāng)前的聚合名稱terms
:是當(dāng)前聚合的類型,terms表示分布情況field
:表示當(dāng)前聚合使用哪個(gè)字段size
:表示顯示多少條聚合的信息
上圖中,query的match一共命中了4條記錄,其中的aggregations
節(jié)點(diǎn)展示了當(dāng)前聚合的結(jié)果 ;可以明顯的看到ageAgg
就是自定義的聚合名稱,buckets
節(jié)點(diǎn)統(tǒng)計(jì)的age的分別情況:
- age=38的記錄一共是2條
- age=28的記錄一共是1條
- age=32的記錄一共是1條
2、聚合第一步4個(gè)人的平均年齡
以上就是address 中包含 mill 的所有人的年齡分布,接下來(lái)聚合這四個(gè)人的平均年齡,同樣ageAvg
是給該聚合結(jié)果自定義的一個(gè)名稱;avg
是該聚合類型,表示聚合平均
下面是**搜索 address 中包含 mill 的所有人的年齡分布以及平均年齡,但不顯示這些人的詳情 **的完整DSL
GET bank/_search
{"query": {"match": {"address": "mill"}},"aggs": {"ageAgg": {"terms": {"field": "age","size": 10}},"ageAvg":{"avg": {"field": "age"}}},"size": 0
}
2、size=0不展示命中記錄,只展示聚合結(jié)果
3、按照年齡聚合,并且請(qǐng)求這些年齡段的這些人的平均薪資
# 2、按照年齡聚合,并且請(qǐng)求這些年齡段的這些人的平均薪資
# 2.1、求出所有的年齡分布
GET bank/_search
{"query": {"match_all": {}},"aggs": {"ageAgg": {"terms": {"field": "age"}}},"size": 0
}
# 2.2、最終;請(qǐng)求這些年齡段的這些人的平均薪資GET bank/_search
{"query": {"match_all": {}},"aggs": {"ageAgg": {"terms": {"field": "age"},"aggs": {"ageGroupBalanceAvg": {"avg": {"field": "balance"}}}}},"size": 0
}
4、查出所有年齡分布,并且這些年齡段中性別M的平均薪資和性別F的平均薪資以及這個(gè)年齡段的總體平均薪資
4.1、聚合所有人的年齡分布
GET bank/_search
{"query": {"match_all": {}},"aggs": {"ageAgg": {"terms": {"field": "age","size": 100}}},"size": 0
}
4.2、在4.1的基礎(chǔ)上再對(duì)每組中的gender進(jìn)行分布聚合
# 再所有的年齡分布基礎(chǔ)上,再根據(jù)gender進(jìn)行分布
GET bank/_search
{"query": {"match_all": {}},"aggs": {"ageAgg": {"terms": {"field": "age","size": 100},"aggs": {"genderAgg": {"terms": {"field": "gender.keyword","size": 10}}}}},"size": 0
}
4.3、最后求得每個(gè)年齡段的平均薪資
GET bank/_search
{"query": {"match_all": {}},"aggs": {"ageAgg": {"terms": {"field": "age","size": 100},"aggs": {"genderAgg": {"terms": {"field": "gender.keyword","size": 10}},"balanceAvg":{"avg": {"field": "balance"}}}}},"size": 0
}