在了解本文内容前,必须先了解ES DSL查询和ES 聚合查询,ES基于查询结果的聚合分为两种,第一种类似与关系型数据库中的Having语法,第二种类似于关系型数据库中先where在group by的语法...,本文主要分析先查询后聚合场景
演示数据从ES 聚合查询获取
1、先查询后聚合
现在需要统计价格在50到500价格范围区间的所有食物,并按照标签进行聚合查询,代码如下:
GET food/_search..."水果",
"doc_count" : 2
}
]
}
}
}
hits中是按照query查询的结果集,下面是根据query的结果集进行的聚合查询....
2、先聚合后查询(注意这里不是having语法,而是查询聚合里面的详情) 通过post_filter实现
现在需要查询价格范围在50到500之间,按照标签分组之后,标签包含营养的记录数据,代码如下: