白话Elasticsearch53-深入聚合数据分析之Collect Model_bucket优化机制:深度优先、广度优先

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 白话Elasticsearch53-深入聚合数据分析之Collect Model_bucket优化机制:深度优先、广度优先

20190806092132811.jpg


概述

继续跟中华石杉老师学习ES,第53篇

课程地址https://www.roncoo.com/view/55


官网

Collect Model戳这里


20190830233057875.png

20190830233112102.png

20190830233132155.png

20190830233146870.png


示例


当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个actor


10万个actor,不去构建它下面的film数据,10万 --> 去掉99990,10个actor,构建出film,裁剪出其中的5个film即可,10万 ->取 50个

和深度优先的方式(110万取50个)相比,10倍的优势



相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
2月前
|
机器学习/深度学习 数据采集 数据挖掘
实战派教学:掌握Scikit-learn,轻松实现数据分析与机器学习模型优化!
【10月更文挑战第4天】Scikit-learn凭借高效、易用及全面性成为数据科学领域的首选工具,简化了数据预处理、模型训练与评估流程,并提供丰富算法库。本文通过实战教学,详细介绍Scikit-learn的基础入门、数据预处理、模型选择与训练、评估及调优等关键步骤,助你快速掌握并优化数据分析与机器学习模型。从环境搭建到参数调优,每一步都配有示例代码,便于理解和实践。
100 2
|
27天前
|
存储 缓存 固态存储
优化Elasticsearch 硬件配置
优化Elasticsearch 硬件配置
73 5
|
1月前
|
缓存 监控 安全
Elasticsearch扩展和优化
【11月更文挑战第4天】
40 6
|
2月前
|
存储 自然语言处理 Java
Elasticsearch写入优化
【10月更文挑战第3天】Elasticsearch:从写入原理谈写入优化
95 2
|
27天前
|
存储 缓存 监控
优化Elasticsearch 索引设计
优化Elasticsearch 索引设计
21 5
|
27天前
|
缓存 监控 安全
优化Elasticsearch 集群配置
优化Elasticsearch 集群配置
59 4
|
28天前
|
监控 负载均衡 安全
Elasticsearch集群配置优化
Elasticsearch集群配置优化
29 1
|
28天前
|
存储 缓存 监控
优化 Elasticsearch
优化 Elasticsearch
22 1
|
1月前
|
存储 SQL 监控