ElasticSearch 2 (27) - 信息聚合系列之故事开始

时间:2022-09-25 19:29:37

ElasticSearch 2 (27) - 信息聚合系列之故事开始

摘要

到目前为止,本书都在着重介绍搜索。对于搜索,我们有查询条件以及与查找到与条件匹配的集合。这个过程就和如大海捞针一样。

对于聚合,我们站在远处总观数据。与查看单个文档不同,我们想要对数据集合进行整体的分析和总结。

版本

elasticsearch版本: elasticsearch-2.x

内容

到目前为止,本书都在着重介绍搜索。对于搜索,我们有查询条件以及与查找到与条件匹配的集合。这个过程就和如大海捞针一样。

对于聚合,我们站在远处总观数据。与查看单个文档不同,我们想要对数据集合进行整体的分析和总结:

  • 大海里有多少针?
  • 针的平均长度是多少?
  • 所有长度的中位数是什么?按生产商分类结果会是怎样?
  • 每个月大海里面会掉进多少根针?

聚合还可以回答更为详细的问题:

  • 销量最好的针的生产商是哪个?
  • 存在不普通或异常的针吗?

聚合允许我们问一些更复杂的数据问题。尽管和搜索的功能完全不同,但它利用相同的数据结构,这使聚合能够快速运行 近乎实时,就像搜索一样。

这对报表和仪表盘是强大的支持,不须要对所有数据进行汇总(不太好用的 Hadoop任务要执行一个星期),我们可以实时看到数据,并做出快速响应。报表随着数据的变化而变化,而不是那些预先计算好却已经过时的无关信息。

最后,聚合操作是与查询请求并行执行的,这意味着对于相同数据、同一请求,我们可以搜索、过滤文档,同时又能完成分析工作。由于聚合是在用户搜索的背景下计算的,我们不仅仅是显示四星级酒店,而是显示与搜索条件相匹配的四星级酒店。

聚合的功能非常强大以至于很多公司建立庞大的 Elasticsearch 集群的目的只是为了分析。

参考

elastic.co: Aggregations