如果一个文档的group.field取值为value, 那么他就被装到值为value的桶里.每个桶有一个sortValue, 这个sortValue就是桶内所有文档的最佳排序值.....每个shard返回自己的Top N个group时, 每个group会带上其最佳文档排序值(即sortValue).协调节点对多个shard返回的桶列表做合并, 把每个数据节点返回的 Top N个桶最终合并为全局的...用查询q重新查一遍, 每个文档先获取其group.field值, 根据值可以确定当前文档属于哪个桶, 然后把这个文档加入该桶(在每个桶内是以group.sort方式给所有文档排序的, 最终每个桶取Top...协调节点Merge处理器: TopGroupsShardResponseProcessor.这块源码没细看, 猜也能猜到:应该以group为粒度合并多个shard返回的文档列表....具体的合并逻辑就和正常搜索合并多个shard的文档列表一样的, 无非是每个group下的文档列表单独走一遍合并逻辑.