全局聚合

编辑

定义搜索执行上下文中所有文档的单个桶。此上下文由您搜索的索引和文档类型定义,但 受搜索查询本身的影响。

全局聚合器只能放置为顶级聚合器,因为将全局聚合器嵌入另一个桶聚合器中没有意义。

示例

resp = client.search(
    index="sales",
    size="0",
    query={
        "match": {
            "type": "t-shirt"
        }
    },
    aggs={
        "all_products": {
            "global": {},
            "aggs": {
                "avg_price": {
                    "avg": {
                        "field": "price"
                    }
                }
            }
        },
        "t_shirts": {
            "avg": {
                "field": "price"
            }
        }
    },
)
print(resp)
response = client.search(
  index: 'sales',
  size: 0,
  body: {
    query: {
      match: {
        type: 't-shirt'
      }
    },
    aggregations: {
      all_products: {
        global: {},
        aggregations: {
          avg_price: {
            avg: {
              field: 'price'
            }
          }
        }
      },
      t_shirts: {
        avg: {
          field: 'price'
        }
      }
    }
  }
)
puts response
const response = await client.search({
  index: "sales",
  size: 0,
  query: {
    match: {
      type: "t-shirt",
    },
  },
  aggs: {
    all_products: {
      global: {},
      aggs: {
        avg_price: {
          avg: {
            field: "price",
          },
        },
      },
    },
    t_shirts: {
      avg: {
        field: "price",
      },
    },
  },
});
console.log(response);
POST /sales/_search?size=0
{
  "query": {
    "match": { "type": "t-shirt" }
  },
  "aggs": {
    "all_products": {
      "global": {}, 
      "aggs": {     
      "avg_price": { "avg": { "field": "price" } }
      }
    },
    "t_shirts": { "avg": { "field": "price" } }
  }
}

global 聚合有一个空主体

为此 global 聚合注册的子聚合

以上聚合演示了如何计算搜索上下文中所有文档的聚合(本例中为 avg_price),而不考虑查询(在我们的示例中,它将计算目录中所有产品的平均价格,而不仅仅是“衬衫”)。

上述聚合的响应

{
  ...
  "aggregations": {
    "all_products": {
      "doc_count": 7, 
      "avg_price": {
        "value": 140.71428571428572 
      }
    },
    "t_shirts": {
      "value": 128.33333333333334 
    }
  }
}

聚合的文档数量(在我们的例子中,是搜索上下文中的所有文档)

索引中所有产品的平均价格

所有 T 恤的平均价格