Elasticsearch Mutually Exclusive结果

时间:2016-07-05 14:46:39

标签: elasticsearch

我有一个Elasticsearch查询,其条件是检查issoldout = false。基于它,我有很少的Sum和Count Aggregation字段。

但是,如果issoldout = false未获取结果,我希望获得聚合值,然后尝试使用issoldout = true。有没有办法在没有issoldout = true的第二次搜索的情况下完成这项工作。

1 个答案:

答案 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"
          }
        }
      }
    }
  }
}