elasticsearch,database-design,data-analysis,aggregation,Performance,elasticsearch,Database Design,Data Analysis,Aggregation" /> elasticsearch,database-design,data-analysis,aggregation,Performance,elasticsearch,Database Design,Data Analysis,Aggregation" />

Performance 具有高级筛选功能的数据聚合?(弹性搜索)

Performance 具有高级筛选功能的数据聚合?(弹性搜索),performance,elasticsearch,database-design,data-analysis,aggregation,Performance,elasticsearch,Database Design,Data Analysis,Aggregation,我们有一个包含用户报告的Elasticsearch索引,每个用户有一个或多个报告,有数百万用户和报告。 我们的后端公开了一个API,该API需要能够生成按输入报告时间范围和用户报告值过滤(从前端)的每用户统计数据的报告 例如: 获取日期范围为2020年1月5日至2020年8月9日、体重在60-80 kg之间的男性用户的报告字段X的平均值为20-30、30-40、40-50(即直方图)的用户数。 注意,过滤器(在本例中为性别、重量和日期范围)是每个API请求的动态参数。 结果应在几秒钟内可用 通常

我们有一个包含用户报告的Elasticsearch索引,每个用户有一个或多个报告,有数百万用户和报告。 我们的后端公开了一个API,该API需要能够生成按输入报告时间范围和用户报告值过滤(从前端)的每用户统计数据的报告

例如: 获取日期范围为2020年1月5日至2020年8月9日、体重在60-80 kg之间的男性用户的报告字段X的平均值为20-30、30-40、40-50(即直方图)的用户数。 注意,过滤器(在本例中为性别、重量和日期范围)是每个API请求的动态参数。 结果应在几秒钟内可用

通常,建议提前准备压缩的数据(例如,以用户/实体为中心的数据),以避免实时复杂的聚合。 此外,如果我们需要在用户id上使用
termsAggregations
来计算每个用户的统计数据,那么
termsAggregations
最多只能支持10000个存储桶,因此这不允许支持数百万用户。 但由于动态过滤的要求,我看不到任何简单的方法来做到这一点

有什么想法吗