ElasticSearch 2 (27) - 信息聚合系列之故事开始
摘要
到目前为止,本书都在着重介绍搜索。对于搜索,我们有查询条件以及与查找到与条件匹配的集合。这个过程就和如大海捞针一样。
对于聚合,我们站在远处总观数据。与查看单个文档不同,我们想要对数据集合进行整体的分析和总结。
版本
elasticsearch版本: elasticsearch-2.x
内容
到目前为止,本书都在着重介绍搜索。对于搜索,我们有查询条件以及与查找到与条件匹配的集合。这个过程就和如大海捞针一样。
对于聚合,我们站在远处总观数据。与查看单个文档不同,我们想要对数据集合进行整体的分析和总结:
- 大海里有多少针?
- 针的平均长度是多少?
- 所有长度的中位数是什么?按生产商分类结果会是怎样?
- 每个月大海里面会掉进多少根针?
聚合还可以回答更为详细的问题:
- 销量最好的针的生产商是哪个?
- 存在不普通或异常的针吗?
聚合允许我们问一些更复杂的数据问题。尽管和搜索的功能完全不同,但它利用相同的数据结构,这使聚合能够快速运行 近乎实时,就像搜索一样。
这对报表和仪表盘是强大的支持,不须要对所有数据进行汇总(不太好用的 Hadoop任务要执行一个星期),我们可以实时看到数据,并做出快速响应。报表随着数据的变化而变化,而不是那些预先计算好却已经过时的无关信息。
最后,聚合操作是与查询请求并行执行的,这意味着对于相同数据、同一请求,我们可以搜索、过滤文档,同时又能完成分析工作。由于聚合是在用户搜索的背景下计算的,我们不仅仅是显示四星级酒店,而是显示与搜索条件相匹配的四星级酒店。
聚合的功能非常强大以至于很多公司建立庞大的 Elasticsearch 集群的目的只是为了分析。