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

时间:2015-04-27 13:10:53

标签: aggregation elasticsearch

我有简单的聚合,如

  "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
            },

为什么会这样?我认为这个尺寸会增加弹性回归的聚合数量。

1 个答案:

答案 0 :(得分:1)

这是由于在分片级别上进行的估计。 对于大小为5的结果,只从每个分片中获取前5个术语,并添加此术语以获得结果。这不一定非常准确。

对此here有一个非常好的解释。

除了大小,您可以传递shard_size参数,该参数可以控制此行为而不会影响返回的数据