• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Elasticsearch:Elasticsearch 中的父级和兄弟级聚合

武飞扬头像
Elasticsearch
帮助65

前言

从广义上讲,我们可以将聚合分为两种类型:父聚合(parent aggregation)和兄弟聚合(sibling aggregation)。 你可能会发现它们有点令人困惑,所以让我们看看它们是什么以及如何使用它们。

准备数据

我们使用 Kibana 中自带的索引例子来进行展示: 

> 

>这样我们就在 Elasticsearch 中创建了一个叫做 kibana_sample_data_logs 的索引。

Parent aggregations

父聚合是一组聚合,它们处理来自父聚合的输入以产生新的桶,然后将其添加到现有桶中。 看看下面的代码清单。

我们先使用如下的一个聚合得到每天的文档数:



1.  GET  kibana_sample_data_logs/_search?filter_path=aggregations
2.  {
3.    "size": 0,
4.    "aggs": {
5.      "count_per_day": {
6.        "date_histogram": {
7.          "field": "@timestamp",
8.          "calendar_interval": "day"
9.        }
10.      }
11.    }
12.  }


上面的聚合所生成的结果为:

`

1.  {
2.    "aggregations": {
3.      "count_per_day": {
4.        "buckets": [
5.          {
6.            "key_as_string": "2023-01-22T00:00:00.000Z",
7.            "key": 1674345600000,
8.            "doc_count": 249
9.          },
10.          {
11.            "key_as_string": "2023-01-23T00:00:00.000Z",
12.            "key": 1674432000000,
13.            "doc_count": 231
14.          },
15.          {
16.            "key_as_string": "2023-01-24T00:00:00.000Z",
17.            "key": 1674518400000,
18.            "doc_count": 230
19.          },
20.          {
21.            "key_as_string": "2023-01-25T00:00:00.000Z",
22.            "key": 1674604800000,
23.            "doc_count": 236
24.          },
25.          {
26.            "key_as_string": "2023-01-26T00:00:00.000Z",
27.            "key": 1674691200000,
28.            "doc_count": 230
29.          },
30.          {
31.            "key_as_string": "2023-01-27T00:00:00.000Z",
32.            "key": 1674777600000,
33.            "doc_count": 230
34.          },
35.          {
36.            "key_as_string": "2023-01-28T00:00:00.000Z",
37.            "key": 1674864000000,
38.            "doc_count": 229
39.          },
40.          {
41.            "key_as_string": "2023-01-29T00:00:00.000Z",
42.            "key": 1674950400000,
43.            "doc_count": 231
44.          },
45.          {
46.            "key_as_string": "2023-01-30T00:00:00.000Z",
47.            "key": 1675036800000,
48.            "doc_count": 230
49.          },
50.          {
51.            "key_as_string": "2023-01-31T00:00:00.000Z",
52.            "key": 1675123200000,
53.            "doc_count": 230
54.          },
55.          {
56.            "key_as_string": "2023-02-01T00:00:00.000Z",
57.            "key": 1675209600000,
58.            "doc_count": 230
59.          },
60.          {
61.            "key_as_string": "2023-02-02T00:00:00.000Z",
62.            "key": 1675296000000,
63.            "doc_count": 230
64.          },
65.          {
66.            "key_as_string": "2023-02-03T00:00:00.000Z",
67.            "key": 1675382400000,
68.            "doc_count": 230
69.          },
70.          {
71.            "key_as_string": "2023-02-04T00:00:00.000Z",
72.            "key": 1675468800000,
73.            "doc_count": 230
74.          },
75.          {
76.            "key_as_string": "2023-02-05T00:00:00.000Z",
77.            "key": 1675555200000,
78.            "doc_count": 230
79.          },
80.          {
81.            "key_as_string": "2023-02-06T00:00:00.000Z",
82.            "key": 1675641600000,
83.            "doc_count": 230
84.          },
85.          {
86.            "key_as_string": "2023-02-07T00:00:00.000Z",
87.            "key": 1675728000000,
88.            "doc_count": 230
89.          },
90.          {
91.            "key_as_string": "2023-02-08T00:00:00.000Z",
92.            "key": 1675814400000,
93.            "doc_count": 229
94.          },
95.          {
96.            "key_as_string": "2023-02-09T00:00:00.000Z",
97.            "key": 1675900800000,
98.            "doc_count": 231
99.          },
100.          {
101.            "key_as_string": "2023-02-10T00:00:00.000Z",
102.            "key": 1675987200000,
103.            "doc_count": 230
104.          },
105.          {
106.            "key_as_string": "2023-02-11T00:00:00.000Z",
107.            "key": 1676073600000,
108.            "doc_count": 230
109.          },
110.          {
111.            "key_as_string": "2023-02-12T00:00:00.000Z",
112.            "key": 1676160000000,
113.            "doc_count": 230
114.          },
115.          {
116.            "key_as_string": "2023-02-13T00:00:00.000Z",
117.            "key": 1676246400000,
118.            "doc_count": 230
119.          },
120.          {
121.            "key_as_string": "2023-02-14T00:00:00.000Z",
122.            "key": 1676332800000,
123.            "doc_count": 230
124.          },
125.          {
126.            "key_as_string": "2023-02-15T00:00:00.000Z",
127.            "key": 1676419200000,
128.            "doc_count": 230
129.          },
130.          {
131.            "key_as_string": "2023-02-16T00:00:00.000Z",
132.            "key": 1676505600000,
133.            "doc_count": 230
134.          },
135.          {
136.            "key_as_string": "2023-02-17T00:00:00.000Z",
137.            "key": 1676592000000,
138.            "doc_count": 230
139.          },
140.          {
141.            "key_as_string": "2023-02-18T00:00:00.000Z",
142.            "key": 1676678400000,
143.            "doc_count": 230
144.          },
145.          {
146.            "key_as_string": "2023-02-19T00:00:00.000Z",
147.            "key": 1676764800000,
148.            "doc_count": 229
149.          },
150.          {
151.            "key_as_string": "2023-02-20T00:00:00.000Z",
152.            "key": 1676851200000,
153.            "doc_count": 231
154.          },
155.          {
156.            "key_as_string": "2023-02-21T00:00:00.000Z",
157.            "key": 1676937600000,
158.            "doc_count": 173
159.          },
160.          {
161.            "key_as_string": "2023-02-22T00:00:00.000Z",
162.            "key": 1677024000000,
163.            "doc_count": 230
164.          },
165.          {
166.            "key_as_string": "2023-02-23T00:00:00.000Z",
167.            "key": 1677110400000,
168.            "doc_count": 230
169.          },
170.          {
171.            "key_as_string": "2023-02-24T00:00:00.000Z",
172.            "key": 1677196800000,
173.            "doc_count": 230
174.          },
175.          {
176.            "key_as_string": "2023-02-25T00:00:00.000Z",
177.            "key": 1677283200000,
178.            "doc_count": 229
179.          },
180.          {
181.            "key_as_string": "2023-02-26T00:00:00.000Z",
182.            "key": 1677369600000,
183.            "doc_count": 231
184.          },
185.          {
186.            "key_as_string": "2023-02-27T00:00:00.000Z",
187.            "key": 1677456000000,
188.            "doc_count": 230
189.          },
190.          {
191.            "key_as_string": "2023-02-28T00:00:00.000Z",
192.            "key": 1677542400000,
193.            "doc_count": 229
194.          },
195.          {
196.            "key_as_string": "2023-03-01T00:00:00.000Z",
197.            "key": 1677628800000,
198.            "doc_count": 231
199.          },
200.          {
201.            "key_as_string": "2023-03-02T00:00:00.000Z",
202.            "key": 1677715200000,
203.            "doc_count": 230
204.          },
205.          {
206.            "key_as_string": "2023-03-03T00:00:00.000Z",
207.            "key": 1677801600000,
208.            "doc_count": 230
209.          },
210.          {
211.            "key_as_string": "2023-03-04T00:00:00.000Z",
212.            "key": 1677888000000,
213.            "doc_count": 329
214.          },
215.          {
216.            "key_as_string": "2023-03-05T00:00:00.000Z",
217.            "key": 1677974400000,
218.            "doc_count": 231
219.          },
220.          {
221.            "key_as_string": "2023-03-06T00:00:00.000Z",
222.            "key": 1678060800000,
223.            "doc_count": 230
224.          },
225.          {
226.            "key_as_string": "2023-03-07T00:00:00.000Z",
227.            "key": 1678147200000,
228.            "doc_count": 230
229.          },
230.          {
231.            "key_as_string": "2023-03-08T00:00:00.000Z",
232.            "key": 1678233600000,
233.            "doc_count": 230
234.          },
235.          {
236.            "key_as_string": "2023-03-09T00:00:00.000Z",
237.            "key": 1678320000000,
238.            "doc_count": 230
239.          },
240.          {
241.            "key_as_string": "2023-03-10T00:00:00.000Z",
242.            "key": 1678406400000,
243.            "doc_count": 230
244.          },
245.          {
246.            "key_as_string": "2023-03-11T00:00:00.000Z",
247.            "key": 1678492800000,
248.            "doc_count": 230
249.          },
250.          {
251.            "key_as_string": "2023-03-12T00:00:00.000Z",
252.            "key": 1678579200000,
253.            "doc_count": 230
254.          },
255.          {
256.            "key_as_string": "2023-03-13T00:00:00.000Z",
257.            "key": 1678665600000,
258.            "doc_count": 230
259.          },
260.          {
261.            "key_as_string": "2023-03-14T00:00:00.000Z",
262.            "key": 1678752000000,
263.            "doc_count": 230
264.          },
265.          {
266.            "key_as_string": "2023-03-15T00:00:00.000Z",
267.            "key": 1678838400000,
268.            "doc_count": 230
269.          },
270.          {
271.            "key_as_string": "2023-03-16T00:00:00.000Z",
272.            "key": 1678924800000,
273.            "doc_count": 230
274.          },
275.          {
276.            "key_as_string": "2023-03-17T00:00:00.000Z",
277.            "key": 1679011200000,
278.            "doc_count": 230
279.          },
280.          {
281.            "key_as_string": "2023-03-18T00:00:00.000Z",
282.            "key": 1679097600000,
283.            "doc_count": 230
284.          },
285.          {
286.            "key_as_string": "2023-03-19T00:00:00.000Z",
287.            "key": 1679184000000,
288.            "doc_count": 230
289.          },
290.          {
291.            "key_as_string": "2023-03-20T00:00:00.000Z",
292.            "key": 1679270400000,
293.            "doc_count": 230
294.          },
295.          {
296.            "key_as_string": "2023-03-21T00:00:00.000Z",
297.            "key": 1679356800000,
298.            "doc_count": 230
299.          },
300.          {
301.            "key_as_string": "2023-03-22T00:00:00.000Z",
302.            "key": 1679443200000,
303.            "doc_count": 230
304.          },
305.          {
306.            "key_as_string": "2023-03-23T00:00:00.000Z",
307.            "key": 1679529600000,
308.            "doc_count": 205
309.          }
310.        ]
311.      }
312.    }
313.  }

`![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)

如果用图来表达的话就是:

>可以看到每天的文档数据。下面的问题是,我们想求出每个桶里的下载数据的总和,那该怎么办呢?

我们可以使用如下的聚合:

`

1.  GET  kibana_sample_data_logs/_search?filter_path=aggregations
2.  {
3.    "size": 0,
4.    "aggs": {
5.      "count_per_day": {
6.        "date_histogram": {
7.          "field": "@timestamp",
8.          "calendar_interval": "day"
9.        },
10.        "aggs": {
11.          "total_bytes_per_day": {
12.            "sum": {
13.              "field": "bytes"
14.            }
15.          }
16.        }
17.      }
18.    }
19.  }

`![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)

在上面,我们根据每天的文档数,把里面的 bytes 字段加起来。这样我们可以看到每天下载的数据量是多少。上面聚合的结果为:

`

1.  {
2.    "aggregations": {
3.      "count_per_day": {
4.        "buckets": [
5.          {
6.            "key_as_string": "2023-01-22T00:00:00.000Z",
7.            "key": 1674345600000,
8.            "doc_count": 249,
9.            "total_bytes_per_day": {
10.              "value": 1531493
11.            }
12.          },
13.          {
14.            "key_as_string": "2023-01-23T00:00:00.000Z",
15.            "key": 1674432000000,
16.            "doc_count": 231,
17.            "total_bytes_per_day": {
18.              "value": 1272610
19.            }
20.          },
21.          {
22.            "key_as_string": "2023-01-24T00:00:00.000Z",
23.            "key": 1674518400000,
24.            "doc_count": 230,
25.            "total_bytes_per_day": {
26.              "value": 1265206
27.            }
28.          },
29.          {
30.            "key_as_string": "2023-01-25T00:00:00.000Z",
31.            "key": 1674604800000,
32.            "doc_count": 236,
33.            "total_bytes_per_day": {
34.              "value": 1408912
35.            }
36.          },
37.          {
38.            "key_as_string": "2023-01-26T00:00:00.000Z",
39.            "key": 1674691200000,
40.            "doc_count": 230,
41.            "total_bytes_per_day": {
42.              "value": 1308255
43.            }
44.          },
45.          {
46.            "key_as_string": "2023-01-27T00:00:00.000Z",
47.            "key": 1674777600000,
48.            "doc_count": 230,
49.            "total_bytes_per_day": {
50.              "value": 1259611
51.            }
52.          },
53.          {
54.            "key_as_string": "2023-01-28T00:00:00.000Z",
55.            "key": 1674864000000,
56.            "doc_count": 229,
57.            "total_bytes_per_day": {
58.              "value": 1354113
59.            }
60.          },
61.          {
62.            "key_as_string": "2023-01-29T00:00:00.000Z",
63.            "key": 1674950400000,
64.            "doc_count": 231,
65.            "total_bytes_per_day": {
66.              "value": 1344454
67.            }
68.          },
69.          {
70.            "key_as_string": "2023-01-30T00:00:00.000Z",
71.            "key": 1675036800000,
72.            "doc_count": 230,
73.            "total_bytes_per_day": {
74.              "value": 1352342
75.            }
76.          },
77.          {
78.            "key_as_string": "2023-01-31T00:00:00.000Z",
79.            "key": 1675123200000,
80.            "doc_count": 230,
81.            "total_bytes_per_day": {
82.              "value": 1262058
83.            }
84.          },
85.          {
86.            "key_as_string": "2023-02-01T00:00:00.000Z",
87.            "key": 1675209600000,
88.            "doc_count": 230,
89.            "total_bytes_per_day": {
90.              "value": 1347502
91.            }
92.          },
93.          {
94.            "key_as_string": "2023-02-02T00:00:00.000Z",
95.            "key": 1675296000000,
96.            "doc_count": 230,
97.            "total_bytes_per_day": {
98.              "value": 1250818
99.            }
100.          },
101.          {
102.            "key_as_string": "2023-02-03T00:00:00.000Z",
103.            "key": 1675382400000,
104.            "doc_count": 230,
105.            "total_bytes_per_day": {
106.              "value": 1354851
107.            }
108.          },
109.          {
110.            "key_as_string": "2023-02-04T00:00:00.000Z",
111.            "key": 1675468800000,
112.            "doc_count": 230,
113.            "total_bytes_per_day": {
114.              "value": 1215747
115.            }
116.          },
117.          {
118.            "key_as_string": "2023-02-05T00:00:00.000Z",
119.            "key": 1675555200000,
120.            "doc_count": 230,
121.            "total_bytes_per_day": {
122.              "value": 1405353
123.            }
124.          },
125.          {
126.            "key_as_string": "2023-02-06T00:00:00.000Z",
127.            "key": 1675641600000,
128.            "doc_count": 230,
129.            "total_bytes_per_day": {
130.              "value": 1334883
131.            }
132.          },
133.          {
134.            "key_as_string": "2023-02-07T00:00:00.000Z",
135.            "key": 1675728000000,
136.            "doc_count": 230,
137.            "total_bytes_per_day": {
138.              "value": 1382164
139.            }
140.          },
141.          {
142.            "key_as_string": "2023-02-08T00:00:00.000Z",
143.            "key": 1675814400000,
144.            "doc_count": 229,
145.            "total_bytes_per_day": {
146.              "value": 1326963
147.            }
148.          },
149.          {
150.            "key_as_string": "2023-02-09T00:00:00.000Z",
151.            "key": 1675900800000,
152.            "doc_count": 231,
153.            "total_bytes_per_day": {
154.              "value": 1309513
155.            }
156.          },
157.          {
158.            "key_as_string": "2023-02-10T00:00:00.000Z",
159.            "key": 1675987200000,
160.            "doc_count": 230,
161.            "total_bytes_per_day": {
162.              "value": 1197116
163.            }
164.          },
165.          {
166.            "key_as_string": "2023-02-11T00:00:00.000Z",
167.            "key": 1676073600000,
168.            "doc_count": 230,
169.            "total_bytes_per_day": {
170.              "value": 1372478
171.            }
172.          },
173.          {
174.            "key_as_string": "2023-02-12T00:00:00.000Z",
175.            "key": 1676160000000,
176.            "doc_count": 230,
177.            "total_bytes_per_day": {
178.              "value": 1321734
179.            }
180.          },
181.          {
182.            "key_as_string": "2023-02-13T00:00:00.000Z",
183.            "key": 1676246400000,
184.            "doc_count": 230,
185.            "total_bytes_per_day": {
186.              "value": 1289226
187.            }
188.          },
189.          {
190.            "key_as_string": "2023-02-14T00:00:00.000Z",
191.            "key": 1676332800000,
192.            "doc_count": 230,
193.            "total_bytes_per_day": {
194.              "value": 1325093
195.            }
196.          },
197.          {
198.            "key_as_string": "2023-02-15T00:00:00.000Z",
199.            "key": 1676419200000,
200.            "doc_count": 230,
201.            "total_bytes_per_day": {
202.              "value": 1250263
203.            }
204.          },
205.          {
206.            "key_as_string": "2023-02-16T00:00:00.000Z",
207.            "key": 1676505600000,
208.            "doc_count": 230,
209.            "total_bytes_per_day": {
210.              "value": 1294967
211.            }
212.          },
213.          {
214.            "key_as_string": "2023-02-17T00:00:00.000Z",
215.            "key": 1676592000000,
216.            "doc_count": 230,
217.            "total_bytes_per_day": {
218.              "value": 1289010
219.            }
220.          },
221.          {
222.            "key_as_string": "2023-02-18T00:00:00.000Z",
223.            "key": 1676678400000,
224.            "doc_count": 230,
225.            "total_bytes_per_day": {
226.              "value": 1285469
227.            }
228.          },
229.          {
230.            "key_as_string": "2023-02-19T00:00:00.000Z",
231.            "key": 1676764800000,
232.            "doc_count": 229,
233.            "total_bytes_per_day": {
234.              "value": 1327017
235.            }
236.          },
237.          {
238.            "key_as_string": "2023-02-20T00:00:00.000Z",
239.            "key": 1676851200000,
240.            "doc_count": 231,
241.            "total_bytes_per_day": {
242.              "value": 1368197
243.            }
244.          },
245.          {
246.            "key_as_string": "2023-02-21T00:00:00.000Z",
247.            "key": 1676937600000,
248.            "doc_count": 173,
249.            "total_bytes_per_day": {
250.              "value": 1030140
251.            }
252.          },
253.          {
254.            "key_as_string": "2023-02-22T00:00:00.000Z",
255.            "key": 1677024000000,
256.            "doc_count": 230,
257.            "total_bytes_per_day": {
258.              "value": 1269612
259.            }
260.          },
261.          {
262.            "key_as_string": "2023-02-23T00:00:00.000Z",
263.            "key": 1677110400000,
264.            "doc_count": 230,
265.            "total_bytes_per_day": {
266.              "value": 1266399
267.            }
268.          },
269.          {
270.            "key_as_string": "2023-02-24T00:00:00.000Z",
271.            "key": 1677196800000,
272.            "doc_count": 230,
273.            "total_bytes_per_day": {
274.              "value": 1188422
275.            }
276.          },
277.          {
278.            "key_as_string": "2023-02-25T00:00:00.000Z",
279.            "key": 1677283200000,
280.            "doc_count": 229,
281.            "total_bytes_per_day": {
282.              "value": 1240567
283.            }
284.          },
285.          {
286.            "key_as_string": "2023-02-26T00:00:00.000Z",
287.            "key": 1677369600000,
288.            "doc_count": 231,
289.            "total_bytes_per_day": {
290.              "value": 1350170
291.            }
292.          },
293.          {
294.            "key_as_string": "2023-02-27T00:00:00.000Z",
295.            "key": 1677456000000,
296.            "doc_count": 230,
297.            "total_bytes_per_day": {
298.              "value": 1327906
299.            }
300.          },
301.          {
302.            "key_as_string": "2023-02-28T00:00:00.000Z",
303.            "key": 1677542400000,
304.            "doc_count": 229,
305.            "total_bytes_per_day": {
306.              "value": 1324946
307.            }
308.          },
309.          {
310.            "key_as_string": "2023-03-01T00:00:00.000Z",
311.            "key": 1677628800000,
312.            "doc_count": 231,
313.            "total_bytes_per_day": {
314.              "value": 1327983
315.            }
316.          },
317.          {
318.            "key_as_string": "2023-03-02T00:00:00.000Z",
319.            "key": 1677715200000,
320.            "doc_count": 230,
321.            "total_bytes_per_day": {
322.              "value": 1371387
323.            }
324.          },
325.          {
326.            "key_as_string": "2023-03-03T00:00:00.000Z",
327.            "key": 1677801600000,
328.            "doc_count": 230,
329.            "total_bytes_per_day": {
330.              "value": 1335187
331.            }
332.          },
333.          {
334.            "key_as_string": "2023-03-04T00:00:00.000Z",
335.            "key": 1677888000000,
336.            "doc_count": 329,
337.            "total_bytes_per_day": {
338.              "value": 1558542
339.            }
340.          },
341.          {
342.            "key_as_string": "2023-03-05T00:00:00.000Z",
343.            "key": 1677974400000,
344.            "doc_count": 231,
345.            "total_bytes_per_day": {
346.              "value": 1298767
347.            }
348.          },
349.          {
350.            "key_as_string": "2023-03-06T00:00:00.000Z",
351.            "key": 1678060800000,
352.            "doc_count": 230,
353.            "total_bytes_per_day": {
354.              "value": 1285049
355.            }
356.          },
357.          {
358.            "key_as_string": "2023-03-07T00:00:00.000Z",
359.            "key": 1678147200000,
360.            "doc_count": 230,
361.            "total_bytes_per_day": {
362.              "value": 1376259
363.            }
364.          },
365.          {
366.            "key_as_string": "2023-03-08T00:00:00.000Z",
367.            "key": 1678233600000,
368.            "doc_count": 230,
369.            "total_bytes_per_day": {
370.              "value": 1283288
371.            }
372.          },
373.          {
374.            "key_as_string": "2023-03-09T00:00:00.000Z",
375.            "key": 1678320000000,
376.            "doc_count": 230,
377.            "total_bytes_per_day": {
378.              "value": 1318528
379.            }
380.          },
381.          {
382.            "key_as_string": "2023-03-10T00:00:00.000Z",
383.            "key": 1678406400000,
384.            "doc_count": 230,
385.            "total_bytes_per_day": {
386.              "value": 1290236
387.            }
388.          },
389.          {
390.            "key_as_string": "2023-03-11T00:00:00.000Z",
391.            "key": 1678492800000,
392.            "doc_count": 230,
393.            "total_bytes_per_day": {
394.              "value": 1286164
395.            }
396.          },
397.          {
398.            "key_as_string": "2023-03-12T00:00:00.000Z",
399.            "key": 1678579200000,
400.            "doc_count": 230,
401.            "total_bytes_per_day": {
402.              "value": 1316296
403.            }
404.          },
405.          {
406.            "key_as_string": "2023-03-13T00:00:00.000Z",
407.            "key": 1678665600000,
408.            "doc_count": 230,
409.            "total_bytes_per_day": {
410.              "value": 1229930
411.            }
412.          },
413.          {
414.            "key_as_string": "2023-03-14T00:00:00.000Z",
415.            "key": 1678752000000,
416.            "doc_count": 230,
417.            "total_bytes_per_day": {
418.              "value": 1345543
419.            }
420.          },
421.          {
422.            "key_as_string": "2023-03-15T00:00:00.000Z",
423.            "key": 1678838400000,
424.            "doc_count": 230,
425.            "total_bytes_per_day": {
426.              "value": 1238545
427.            }
428.          },
429.          {
430.            "key_as_string": "2023-03-16T00:00:00.000Z",
431.            "key": 1678924800000,
432.            "doc_count": 230,
433.            "total_bytes_per_day": {
434.              "value": 1320320
435.            }
436.          },
437.          {
438.            "key_as_string": "2023-03-17T00:00:00.000Z",
439.            "key": 1679011200000,
440.            "doc_count": 230,
441.            "total_bytes_per_day": {
442.              "value": 1304937
443.            }
444.          },
445.          {
446.            "key_as_string": "2023-03-18T00:00:00.000Z",
447.            "key": 1679097600000,
448.            "doc_count": 230,
449.            "total_bytes_per_day": {
450.              "value": 1311265
451.            }
452.          },
453.          {
454.            "key_as_string": "2023-03-19T00:00:00.000Z",
455.            "key": 1679184000000,
456.            "doc_count": 230,
457.            "total_bytes_per_day": {
458.              "value": 1274538
459.            }
460.          },
461.          {
462.            "key_as_string": "2023-03-20T00:00:00.000Z",
463.            "key": 1679270400000,
464.            "doc_count": 230,
465.            "total_bytes_per_day": {
466.              "value": 1332873
467.            }
468.          },
469.          {
470.            "key_as_string": "2023-03-21T00:00:00.000Z",
471.            "key": 1679356800000,
472.            "doc_count": 230,
473.            "total_bytes_per_day": {
474.              "value": 1354188
475.            }
476.          },
477.          {
478.            "key_as_string": "2023-03-22T00:00:00.000Z",
479.            "key": 1679443200000,
480.            "doc_count": 230,
481.            "total_bytes_per_day": {
482.              "value": 1175987
483.            }
484.          },
485.          {
486.            "key_as_string": "2023-03-23T00:00:00.000Z",
487.            "key": 1679529600000,
488.            "doc_count": 205,
489.            "total_bytes_per_day": {
490.              "value": 1184297
491.            }
492.          }
493.        ]
494.      }
495.    }
496.  }

`![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)

从上面的结果中我们可以看出来:除了一个文档总数,我们还看到一个下载 bytes 的总数量。如果我们用可视化的方式来进行表达,那就是:

>如果仔细观察(见下图),聚合 total_bytes_per_day 是作为父级 count_per_day 聚合的子项创建的。 它与 date_histogram 处于同一级别。

>这种聚合的结果会在现有存储桶内生成一组存储桶。 下图显示了这个结果。 正如你在上图中所见,total_bytes_per_day 聚合生成隐藏在主 date_histogram 存储桶下的新存储桶。

 

>Sibling aggregations

Sibling aggregations, 也即兄弟聚合是那些在兄弟聚合的同一级别上产生新聚合的聚合。 以下清单中的代码创建了一个聚合,其中包含两个处于同一级别的查询(因此,我们称它们为兄弟)。 

`

1.  GET kibana_sample_data_logs/_search?filter_path=aggregations
2.  {
3.    "size": 0,
4.    "aggs": {
5.      "count_per_day": {
6.        "date_histogram": {
7.          "field": "@timestamp",
8.          "calendar_interval": "day"
9.        }
10.      },
11.      "totoal_bytes_of_download": {
12.        "sum": {
13.          "field": "bytes"
14.        }
15.      }
16.    }
17.  }

`![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)

在上面,count_per_day 和 totoal_bytes_of_download 聚合在同一级别定义。 如果我们在聚合折叠的情况下拍摄查询快照,我们将以图形方式看到它们,如下图

>当我们执行兄弟查询时,会产生新的桶集; 然而,与创建桶并将其添加到现有桶的父聚合不同,兄弟聚合、新聚合或新桶是在根聚合级别创建的。 上一个清单中的查询生成下图中的聚合结果,其中包含为每个兄弟聚合新创建的存储桶。 

> 希望本篇文章的讲述能让你对 parent aggregation 及 sibiling aggregation 有更多的了解。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanfbfea
系列文章
更多 icon
同类精品
更多 icon
继续加载