只需要汇总查询结果

时间:2019-12-23 20:03:32

标签: elasticsearch kibana elasticsearch-aggregation

我需要进行汇总,但仅使用从查询中获得的有限结果,但它无法正常工作,它会返回超出查询大小限制的其他结果。这是我正在做的查询

{
  "size": 500,
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "tags.keyword": "possiblePurchase"
          }
        },
        {
          "term": {
            "clientName": "Ci"
          }
        },
        {
          "range": {
            "firstSeenDate": {
              "gte": "now-30d"
            }
          }
        }
      ],
      "must_not": [
        {
          "term": {
            "tags.keyword": "skipPurchase"
          }
        }
      ]
    }
  },
  "sort": [
    {
      "firstSeenDate": {
        "order": "desc"
      }
    }
  ],
   "aggs": {
    "byClient": {
      "terms": {
        "field": "clientName",
        "size": 25
      },
      "aggs": {
        "byTarget": {
          "terms": {
            "field": "targetName",
            "size": 6
          },
          "aggs": {
            "byId": {
              "terms": {
                "field": "id",
                "size": 5
              }
            }
          }
        }
      }
    }
  }
}

我需要聚合仅考虑查询的前500个结果,并按我在查询中请求的字段排序。我完全迷路了。感谢您的帮助

1 个答案:

答案 0 :(得分:0)

聚合范围是查询的命中数,size参数仅用于指定要获取和显示的命中数。

如果您要限制查询的前n次匹配的聚合范围,建议结合您的查询使用采样器聚合