怎么限制号在函数中聚合时的最高值?
How to limit the no. of top values when aggregating in a Function?
我正在编写一个函数,它只是对一个字符串进行分组 属性。为此,我需要 select topValues()
作为聚合类型。但是,我得到了所有可能的桶,而我只需要前 10 个。是否可以设置最大值?要检索的桶数?
.topValues(10
) 不工作。没有可用的配置可能性。
- 我写了一个函数来 return 1000 个值,然后只保留前 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 个桶,您大致必须知道的大小其他桶(有一些明显的优化空间)。
我正在编写一个函数,它只是对一个字符串进行分组 属性。为此,我需要 select topValues()
作为聚合类型。但是,我得到了所有可能的桶,而我只需要前 10 个。是否可以设置最大值?要检索的桶数?
.topValues(10
) 不工作。没有可用的配置可能性。- 我写了一个函数来 return 1000 个值,然后只保留前 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 个桶,您大致必须知道的大小其他桶(有一些明显的优化空间)。