怎么限制号在函数中聚合时的最高值?

How to limit the no. of top values when aggregating in a Function?

我正在编写一个函数,它只是对一个字符串进行分组 属性。为此,我需要 select topValues() 作为聚合类型。但是,我得到了所有可能的桶,而我只需要前 10 个。是否可以设置最大值?要检索的桶数?

目前 topValues() 聚合不支持 pre-defined 桶计数。你计算前 1000 名然后 post-filtering 的方法是最好的选择。

对于其他人,这里有一个代码片段供参考:

const x = Object.search().myObjectType().groupBy(obj => obj.myStringProperty.topValues()).sum();
return {buckets: x.buckets.sort((x, y) => x.value - y.value).slice(0, 5)};

有一个功能请求跟踪增强功能以​​添加此配置,但我希望这更方便而不是性能改进,因为要计算前 N 个桶,您大致必须知道的大小其他桶(有一些明显的优化空间)。