子聚合和嵌套聚合之间的区别

时间:2015-01-09 03:04:45

标签: elasticsearch

elasticsearch中子聚合和嵌套聚合之间有什么显着差异? 我们应该在哪些条件下使用它们?

1 个答案:

答案 0 :(得分:1)

SUB AGGREGATION

ElasticSearch聚合在一组与查询匹配的文档上运行。如果您使用Bucketing聚合,它会将该组文档拆分为多个较小的集合。您可以在分组聚合中放置另一个聚合,然后它将在每个较小的集合上运行。

例如,如果您的Web访问日志包含URL和响应时间,则可以在存储桶聚合中放置平均聚合,以查找每个URL的平均响应时间。

嵌套聚会

虽然聚合在进行子聚合时是“嵌套”的,但“嵌套聚合”通常是指特定类型的单桶聚合,该ID用于嵌套文档。它允许您获取一组包含嵌套在其中的子文档集合的文档,并在所有子文档中运行聚合,就好像它们没有嵌套一样。

例如,如果每个服务器都有一个文档,其中嵌入了自己的访问日志,则可以使用嵌套聚合中的平均聚合来查找所有服务器的平均响应时间。

请参阅http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/nested-objects.html