這篇文章主要為大家展示了“Elasticsearch如何實(shí)現(xiàn)聚合優(yōu)化”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Elasticsearch如何實(shí)現(xiàn)聚合優(yōu)化”這篇文章吧。
成都創(chuàng)新互聯(lián)公司10多年企業(yè)網(wǎng)站設(shè)計(jì)服務(wù);為您提供網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)頁設(shè)計(jì)及高端網(wǎng)站定制服務(wù),企業(yè)網(wǎng)站設(shè)計(jì)及推廣,對石涼亭等多個領(lǐng)域擁有多年的網(wǎng)站推廣經(jīng)驗(yàn)的網(wǎng)站建設(shè)公司。
大多數(shù)時(shí)候?qū)蝹€字段的聚合查詢還是非常快的, 但是當(dāng)需要同時(shí)聚合多個字段時(shí),就可能會產(chǎn)生大量的分組,最終結(jié)果就是占用 Elasticsearch大量內(nèi)存,從而導(dǎo)致 OOM 的情況發(fā)生。
實(shí)踐應(yīng)用發(fā)現(xiàn),以下情況都會比較慢:
1)待聚合文檔數(shù)比較多(千萬、億、十億甚至更多);
2)聚合條件比較復(fù)雜(多重條件聚合);
3)全量聚合(翻頁的場景用)。
"collect_mode" : "breadth_first"
depth_first 直接進(jìn)行子聚合的計(jì)算
breadth_first 先計(jì)算出當(dāng)前聚合的結(jié)果,針對這個結(jié)果在對子聚合進(jìn)行計(jì)算。
"execution_hint": "map"
國內(nèi)解釋最詳細(xì)的版本來自Wood大叔:
Map方式的結(jié)論可簡要概括如下:
1)查詢結(jié)果直接放入內(nèi)存中構(gòu)建map,在查詢結(jié)果集小的場景下,速度極快;
2)但如果待結(jié)果集合很大的情況,map方式不一定也快。
優(yōu)化方案N:
待進(jìn)一步深入實(shí)踐......
聚合的平衡點(diǎn)是多少呢?
場景一:在近億的document中,檢索滿足給定條件的數(shù)據(jù),并對聚合結(jié)果全量聚合。
場景二:在百萬級別的document中,全量聚合。
場景三:在近億級別的document中,全量聚合。
POST index_*/_search
{
"sort": [
{
"nrply": "desc"
}
],
"aggs": {
"count_over_sin": {
"terms": {
"field": "sin_id",
"execution_hint": "map",
"size": 1000,
"collect_mode": "breadth_first"
}
}
},
"size":0
}
1)修改索引名稱,以獲取更多的文檔。
2)map模式添加 “execution_hint”: “map”,默認(rèn)是global_ordinals模式。
3)”size”: 1000,設(shè)定聚合取值。
以上是“Elasticsearch如何實(shí)現(xiàn)聚合優(yōu)化”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
新聞名稱:Elasticsearch如何實(shí)現(xiàn)聚合優(yōu)化
當(dāng)前URL:http://vcdvsql.cn/article42/gjeiec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、App開發(fā)、企業(yè)網(wǎng)站制作、域名注冊、外貿(mào)建站、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)