前言
从广义上讲,我们可以将聚合分为两种类型:父聚合(parent aggregation)和兄弟聚合(sibling aggregation)。 你可能会发现它们有点令人困惑,所以让我们看看它们是什么以及如何使用它们。
准备数据
我们使用 Kibana 中自带的索引例子来进行展示:


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. }
`
如果用图来表达的话就是:
我们可以使用如下的聚合:
`
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. }
`
在上面,我们根据每天的文档数,把里面的 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. }
`
从上面的结果中我们可以看出来:除了一个文档总数,我们还看到一个下载 bytes 的总数量。如果我们用可视化的方式来进行表达,那就是:
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. }
`
在上面,count_per_day 和 totoal_bytes_of_download 聚合在同一级别定义。 如果我们在聚合折叠的情况下拍摄查询快照,我们将以图形方式看到它们,如下图
本文出至:学新通技术网
标签: