グローバル集約

検索実行コンテキスト内のすべてのドキュメントの単一バケットを定義します。このコンテキストは、検索対象のインデックスとドキュメントタイプによって定義されますが、検索クエリ自体には影響されません

グローバル集約器は、他のバケット集約器内に埋め込むことが意味を持たないため、最上位の集約器としてのみ配置できます。

例:

Python

  1. resp = client.search(
  2. index="sales",
  3. size="0",
  4. query={
  5. "match": {
  6. "type": "t-shirt"
  7. }
  8. },
  9. aggs={
  10. "all_products": {
  11. "global": {},
  12. "aggs": {
  13. "avg_price": {
  14. "avg": {
  15. "field": "price"
  16. }
  17. }
  18. }
  19. },
  20. "t_shirts": {
  21. "avg": {
  22. "field": "price"
  23. }
  24. }
  25. },
  26. )
  27. print(resp)

Ruby

  1. response = client.search(
  2. index: 'sales',
  3. size: 0,
  4. body: {
  5. query: {
  6. match: {
  7. type: 't-shirt'
  8. }
  9. },
  10. aggregations: {
  11. all_products: {
  12. global: {},
  13. aggregations: {
  14. avg_price: {
  15. avg: {
  16. field: 'price'
  17. }
  18. }
  19. }
  20. },
  21. t_shirts: {
  22. avg: {
  23. field: 'price'
  24. }
  25. }
  26. }
  27. }
  28. )
  29. puts response

Js

  1. const response = await client.search({
  2. index: "sales",
  3. size: 0,
  4. query: {
  5. match: {
  6. type: "t-shirt",
  7. },
  8. },
  9. aggs: {
  10. all_products: {
  11. global: {},
  12. aggs: {
  13. avg_price: {
  14. avg: {
  15. field: "price",
  16. },
  17. },
  18. },
  19. },
  20. t_shirts: {
  21. avg: {
  22. field: "price",
  23. },
  24. },
  25. },
  26. });
  27. console.log(response);

コンソール

  1. POST /sales/_search?size=0
  2. {
  3. "query": {
  4. "match": { "type": "t-shirt" }
  5. },
  6. "aggs": {
  7. "all_products": {
  8. "global": {},
  9. "aggs": {
  10. "avg_price": { "avg": { "field": "price" } }
  11. }
  12. },
  13. "t_shirts": { "avg": { "field": "price" } }
  14. }
  15. }
global 集約は空のボディを持っています
この global 集約に登録されたサブ集約

上記の集約は、検索コンテキスト内のすべてのドキュメントに対して集約を計算する方法を示しています(この例では avg_price)。クエリに関係なく、カタログ内のすべての製品の平均価格を計算します(例では「シャツ」だけではなく)。

上記の集約に対する応答:

コンソール-結果

  1. {
  2. ...
  3. "aggregations": {
  4. "all_products": {
  5. "doc_count": 7,
  6. "avg_price": {
  7. "value": 140.71428571428572
  8. }
  9. },
  10. "t_shirts": {
  11. "value": 128.33333333333334
  12. }
  13. }
  14. }
集約されたドキュメントの数(この場合、検索コンテキスト内のすべてのドキュメント)
インデックス内のすべての製品の平均価格
すべてのTシャツの平均価格