白话Elasticsearch53-深入聚合数据分析之Collect Model_bucket优化机制:深度优先、广度优先
文章目錄
- 概述
- 官網
- 示例
概述
繼續跟中華石杉老師學習ES,第53篇
課程地址: https://www.roncoo.com/view/55
官網
Collect Model:戳這里
示例
當buckets數量特別多的時候,深度優先和廣度優先如何選擇?
舉個例子:每個演員的每個電影的評論
每個演員的評論的數量 --> 每個演員的每個電影的評論的數量
評論數量排名前10個的演員 --> 每個演員的電影取到評論數量排名前5的電影
{"aggs" : {"actors" : {"terms" : {"field" : "actors","size" : 10,"collect_mode" : "breadth_first" },"aggs" : {"costars" : {"terms" : {"field" : "films","size" : 5}}}}} }深度優先的方式去執行聚合操作的
actor1 actor2 .... actor film1 film2 film3 film1 film2 film3 ...film比如說,我們有10萬個actor,最后其實是主要10個actor就可以了
但是我們已經深度優先的方式,構建了一整顆完整的樹出來了,10萬個actor,每個actor平均有10部電影,10萬 + 100萬 --> 110萬的數據量的一顆樹
裁剪掉10萬個actor中的99990 actor,99990 * 10 = film,剩下10個actor,每個actor的10個film裁剪掉5個,110萬 --> 10 * 5 = 50個
構建了大量的數據,然后裁剪掉了99.99%的數據,浪費了
廣度優先的方式去執行聚合
actor1 actor2 actor3 ..... n個actor10萬個actor,不去構建它下面的film數據,10萬 --> 去掉99990,10個actor,構建出film,裁剪出其中的5個film即可,10萬 ->取 50個
和深度優先的方式(110萬取50個)相比,10倍的優勢
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的白话Elasticsearch53-深入聚合数据分析之Collect Model_bucket优化机制:深度优先、广度优先的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 白话Elasticsearch52-深入
- 下一篇: 白话Elasticsearch54-数据