我有一个Elasticsearch查询,其条件是检查issoldout = false
。基于它,我有很少的Sum和Count Aggregation字段。
但是,如果issoldout = false
未获取结果,我希望获得聚合值,然后尝试使用issoldout = true
。有没有办法在没有issoldout = true
的第二次搜索的情况下完成这项工作。
答案 0 :(得分:1)
如上所述,您可以使用_msearch
逐字提交两个查询,但您也可以在同一请求中并行运行它们:
您可以使用filter
聚合执行此操作,以便使用它进行潜水。同样,您可以使用terms
聚合来执行此操作,但是当它false
时也可以使用它。
{
"query": {
... normal query ...
},
"aggs": {
"group_by_soldout": {
"filter": {
"term": {
"issoldout": true
}
},
"aggs": {
"stats_for_field": {
"stats": {
"field": "your_field"
}
}
}
}
}
}