分組完成以后,我們一般會(huì)對(duì)組中的數(shù)據(jù)進(jìn)行聚合運(yùn)算,例如求平均值、最大、最小、求和等,這些在ES中稱為度量
比較常用的一些度量聚合方式:
-
Avg Aggregation
:求平均值 -
Max Aggregation
:求最大值 -
Min Aggregation
:求最小值 -
Percentiles Aggregation
:求百分比 -
Stats Aggregation
:同時(shí)返回avg、max、min、sum、count等 -
Sum Aggregation
:求和 -
Top hits Aggregation
:求前幾 -
Value Count Aggregation
:求總數(shù) -
……
測(cè)試聚合
創(chuàng)建索引:
PUT /cars
{
“settings”: {
“number_of_shards”: 1,
“number_of_replicas”: 0
},
“mappings”: {
“transactions”: {
“properties”: {
“color”: {
“type”: “keyword”
},
“make”: {
“type”: “keyword”
}
}
}
}
}
注意:在ES中,需要進(jìn)行聚合、排序、過(guò)濾的字段其處理方式比較特殊,因此不能被分詞。這里我們將color和make這兩個(gè)文字類型的字段設(shè)置為keyword類型,這個(gè)類型不會(huì)被分詞,將來(lái)就可以參與聚合
導(dǎo)入數(shù)據(jù):
POST /cars/transactions/_bulk
{ “index”: {}}
{ “price” : 10000, “color” : “red”, “make” : “honda”, “sold” : “2014-10-28” }
{ “index”: {}}
{ “price” : 20000, “color” : “red”, “make” : “honda”, “sold” : “2014-11-05” }
{ “index”: {}}
{ “price” : 30000, “color” : “green”, “make” : “ford”, “sold” : “2014-05-18” }
{ “index”: {}}
{ “price” : 15000, “color” : “blue”, “make” : “toyota”, “sold” : “2014-07-02” }
{ “index”: {}}
{ “price” : 12000, “color” : “green”, “make” : “toyota”, “sold” : “2014-08-19” }
{ “index”: {}}
{ “price” : 20000, “color” : “red”, “make” : “honda”, “sold” : “2014-11-05” }
{ “index”: {}}
{ “price” : 80000, “color” : “red”, “make” : “bmw”, “sold” : “2014-01-01” }
{ “index”: {}}
{ “price” : 25000, “color” : “blue”, “make” : “ford”, “sold” : “2014-02-12” }
聚合為桶
首先,我們按照 汽車的顏色color
來(lái)劃分桶
GET /cars/_search
{
“size” : 0,
“aggs” : {
“popular_colors” : {
“terms” : {
“field” : “color”
}
}
}
}
-
size: 查詢條數(shù),這里設(shè)置為0,因?yàn)槲覀儾魂P(guān)心搜索到的數(shù)據(jù),只關(guān)心聚合結(jié)果,提高效率
-
aggs:聲明這是一個(gè)聚合查詢,是aggregations的縮寫
-
popular_colors:給這次聚合起一個(gè)名字,任意。
-
terms:劃分桶的方式,這里是根據(jù)詞條劃分
-
field:劃分桶的字段
結(jié)果:
桶內(nèi)度量
前面的例子告訴我們每個(gè)桶里面的文檔數(shù)量,但是我們需要更復(fù)雜的文檔度量,我們需要告訴Elasticsearch使用哪個(gè)字段
,使用何種度量方式
進(jìn)行運(yùn)算,這些信息要嵌套在桶
內(nèi),度量
的運(yùn)算會(huì)基于桶
內(nèi)的文檔進(jìn)行
現(xiàn)在,為剛剛的聚合結(jié)果添加 求價(jià)格平均值的度量:
GET /cars/_search
{
“size” : 0,
“aggs” : {
“popular_colors” : {
“terms” : {
“field” : “color”
},
“aggs”:{
“avg_price”: {
“avg”: {
“field”: “price”
}
}
}
}
}
}
-
aggs:我們?cè)谏弦粋€(gè)aggs(popular_colors)中添加新的aggs??梢?code>度量也是一個(gè)聚合
-
avg_price:聚合的名稱
-
avg:度量的類型,這里是求平均值
-
field:度量運(yùn)算的字段
結(jié)果:
桶內(nèi)嵌套桶
剛剛的案例中,我們?cè)谕皟?nèi)嵌套度量運(yùn)算。事實(shí)上桶不僅可以嵌套運(yùn)算, 還可以再嵌套其它桶。也就是說(shuō)在每個(gè)分組中,再分更多組。
比如:我們想統(tǒng)計(jì)每種顏色的汽車中,分別屬于哪個(gè)制造商,按照make
字段再進(jìn)行分桶
GET /cars/_search
{
“size” : 0,
“aggs” : {
“popular_colors” : {
“terms” : {
“field” : “color”
},
“aggs”:{
“avg_price”: {
“avg”: {
“field”: “price”
}
},
“maker”:{
“terms”:{
“field”:“make”
}
}
}
}
}
}
-
maker:在嵌套的aggs下新添一個(gè)桶,叫做maker
-
terms:桶的劃分類型依然是詞條
-
filed:這里根據(jù)make字段進(jìn)行劃分
小編13年上海交大畢業(yè),曾經(jīng)在小公司待過(guò),也去過(guò)華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。
深知大多數(shù)初中級(jí)Java工程師,想要提升技能,往往是自己摸索成長(zhǎng),但自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年最新Java開發(fā)全套學(xué)習(xí)資料》送給大家,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。
由于文件比較大,這里只是將部分目錄截圖出來(lái),每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻
如果你覺得這些內(nèi)容對(duì)你有幫助,可以添加下面V無(wú)償領(lǐng)取?。▊渥ava)
最后
分享一套我整理的面試干貨,這份文檔結(jié)合了我多年的面試官經(jīng)驗(yàn),站在面試官的角度來(lái)告訴你,面試官提的那些問題他最想聽到你給他的回答是什么,分享出來(lái)幫助那些對(duì)前途感到迷茫的朋友。
面試經(jīng)驗(yàn)技巧篇
- 經(jīng)驗(yàn)技巧1 如何巧妙地回答面試官的問題
- 經(jīng)驗(yàn)技巧2 如何回答技術(shù)性的問題
- 經(jīng)驗(yàn)技巧3 如何回答非技術(shù)性問題
- 經(jīng)驗(yàn)技巧4 如何回答快速估算類問題
- 經(jīng)驗(yàn)技巧5 如何回答算法設(shè)計(jì)問題
- 經(jīng)驗(yàn)技巧6 如何回答系統(tǒng)設(shè)計(jì)題
- 經(jīng)驗(yàn)技巧7 如何解決求職中的時(shí)間沖突問題
- 經(jīng)驗(yàn)技巧8 如果面試問題曾經(jīng)遇見過(guò),是否要告知面試官
- 經(jīng)驗(yàn)技巧9 在被企業(yè)拒絕后是否可以再申請(qǐng)
- 經(jīng)驗(yàn)技巧10 如何應(yīng)對(duì)自己不會(huì)回答的問題
- 經(jīng)驗(yàn)技巧11 如何應(yīng)對(duì)面試官的“激將法”語(yǔ)言
- 經(jīng)驗(yàn)技巧12 如何處理與面試官持不同觀點(diǎn)這個(gè)問題
- 經(jīng)驗(yàn)技巧13 什么是職場(chǎng)暗語(yǔ)
面試真題篇
- 真題詳解1 某知名互聯(lián)網(wǎng)下載服務(wù)提供商軟件工程師筆試題
- 真題詳解2 某知名社交平臺(tái)軟件工程師筆試題
- 真題詳解3 某知名安全軟件服務(wù)提供商軟件工程師筆試題
- 真題詳解4 某知名互聯(lián)網(wǎng)金融企業(yè)軟件工程師筆試題
- 真題詳解5 某知名搜索引擎提供商軟件工程師筆試題
- 真題詳解6 某初創(chuàng)公司軟件工程師筆試題
- 真題詳解7 某知名游戲軟件開發(fā)公司軟件工程師筆試題
- 真題詳解8 某知名電子商務(wù)公司軟件工程師筆試題
- 真題詳解9 某頂級(jí)生活消費(fèi)類網(wǎng)站軟件工程師筆試題
- 真題詳解10 某知名門戶網(wǎng)站軟件工程師筆試題
- 真題詳解11 某知名互聯(lián)網(wǎng)金融企業(yè)軟件工程師筆試題
- 真題詳解12 國(guó)內(nèi)某知名網(wǎng)絡(luò)設(shè)備提供商軟件工程師筆試題
- 真題詳解13 國(guó)內(nèi)某頂級(jí)手機(jī)制造商軟件工程師筆試題
- 真題詳解14 某頂級(jí)大數(shù)據(jù)綜合服務(wù)提供商軟件工程師筆試題
- 真題詳解15 某著名社交類上市公司軟件工程師筆試題
- 真題詳解16 某知名互聯(lián)網(wǎng)公司軟件工程師筆試題
- 真題詳解17 某知名網(wǎng)絡(luò)安全公司校園招聘技術(shù)類筆試題
- 真題詳解18 某知名互聯(lián)網(wǎng)游戲公司校園招聘運(yùn)維開發(fā)崗筆試題
資料整理不易,點(diǎn)個(gè)關(guān)注再走吧文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-861414.html
開發(fā)公司軟件工程師筆試題
- 真題詳解8 某知名電子商務(wù)公司軟件工程師筆試題
- 真題詳解9 某頂級(jí)生活消費(fèi)類網(wǎng)站軟件工程師筆試題
- 真題詳解10 某知名門戶網(wǎng)站軟件工程師筆試題
- 真題詳解11 某知名互聯(lián)網(wǎng)金融企業(yè)軟件工程師筆試題
- 真題詳解12 國(guó)內(nèi)某知名網(wǎng)絡(luò)設(shè)備提供商軟件工程師筆試題
- 真題詳解13 國(guó)內(nèi)某頂級(jí)手機(jī)制造商軟件工程師筆試題
- 真題詳解14 某頂級(jí)大數(shù)據(jù)綜合服務(wù)提供商軟件工程師筆試題
- 真題詳解15 某著名社交類上市公司軟件工程師筆試題
- 真題詳解16 某知名互聯(lián)網(wǎng)公司軟件工程師筆試題
- 真題詳解17 某知名網(wǎng)絡(luò)安全公司校園招聘技術(shù)類筆試題
- 真題詳解18 某知名互聯(lián)網(wǎng)游戲公司校園招聘運(yùn)維開發(fā)崗筆試題
[外鏈圖片轉(zhuǎn)存中…(img-93KfcP4q-1710398049765)]
資料整理不易,點(diǎn)個(gè)關(guān)注再走吧
本文已被CODING開源項(xiàng)目:【一線大廠Java面試題解析+核心總結(jié)學(xué)習(xí)筆記+最新講解視頻+實(shí)戰(zhàn)項(xiàng)目源碼】收錄文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-861414.html
到了這里,關(guān)于Elasticsearch 聚合查詢(aggs),java后端面試常見問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!