聚合大小会产生不同的结果

Aggregations Size makes different results

我有像

这样的简单聚合
  "aggs": {
    "firm_aggregation": {
      "terms": {
        "field": "experience.company_name.slug",
        "size": 10
      }
    }
  }

这给了我这样的结果

 "aggregations": {
        "firm_aggregation": {
            "buckets": [
                ... (some others)
                {
                    "key": "freelancer",
                    "doc_count": 33
                },

但是当我将聚合大小增加到 2000 时,我得到

"aggregations": {
    "firm_aggregation": {
        "buckets": [
            ... (some others)
            {
                "key": "freelancer",
                "doc_count": 35
            },

为什么会这样??我认为这个尺寸会增加弹性 return.

的聚合数量

这是由于在分片级别进行的估计。 对于大小为 5 的结果,仅从每个分片中获取前 5 个术语,并将其相加以获得结果。这不需要非常准确。

这个有很好的解释here

与 size 一起,您可以传递 shard_size 参数,它可以控制此行为而不影响返回的数据