相比普通的`terms aggregation`,`multi terms aggregation`有以下特别之处:
1.支持多字段聚合
• `terms aggregation`:只能对单个字段进行聚合,无法直接对多个字段同时进行聚合。
• `multi terms aggregation`:可以同时对多个字段进行聚合,并将这些字段的值组合成一个复合键(composite key)。例如,可以同时根据`genre`和`product`字段进行聚合,生成一个包含这两个字段值的桶。
2.性能和内存消耗
• `terms aggregation`:通常更快且更节省内存。它利用全局序号(global ordinals)来优化性能。
• `multi terms aggregation`:由于需要处理多个字段,通常会比`terms aggregation`更慢且消耗更多内存。
3.适用场景
• `terms aggregation`:适用于对单个字段进行聚合的场景。
• `multi terms aggregation`:适用于需要根据多个字段的组合值进行聚合,并且需要对结果进行排序(例如按文档数量或度量聚合值排序)的场景。
4.灵活性
• `terms aggregation`:不支