弹性搜索全局聚合如何工作?

时间:2019-02-15 09:38:40

标签: elasticsearch

这是一个场景:

我正在执行弹性搜索查询。为简单起见,可以说我是按title过滤,也可以按category_id(术语查询)和price(范围查询)字段进行过滤。

我已经过滤了category_id字段上的全局聚合(除category_id字词查询外,它通过与主查询相同的查询来过滤)。

我这样做,所以我用category_id过滤了主查询后,仍然可以看到所有其他类别的完整汇总。

现在的问题是,在我添加了此全局聚合之后,总查询时间基本上增加了一倍。那就意味着,elasticsearch在后台实际上运行两次相同的查询集(第一次生成与查询匹配的一组实际文档,第二次再次扫描整个索引以建立聚合)

如果是这种情况...根本不使用全局聚合就可以达到预期结果吗?也许可以通过某种方式创建简单的查询上下文聚合,该聚合由除一个以外的所有相同子句过滤?

0 个答案:

没有答案