子文档聚合

在父-子文档中支持 子文档聚合,这一点和nested-aggregation 类似。但是,对于父文档的聚合查询是不支持的(和 reverse_nested 类似)。

我们通过下面的例子来演示按照国家维度查看最受雇员欢迎的业余爱好:

  1. GET /company/branch/_search
  2. {
  3. "size" : 0,
  4. "aggs": {
  5. "country": {
  6. "terms": { <1>
  7. "field": "country"
  8. },
  9. "aggs": {
  10. "employees": {
  11. "children": { <2>
  12. "type": "employee"
  13. },
  14. "aggs": {
  15. "hobby": {
  16. "terms": { <3>
  17. "field": "hobby"
  18. }
  19. }
  20. }
  21. }
  22. }
  23. }
  24. }
  25. }

<1> countrybranch 文档的一个字段。

<2> 子文档聚合查询通过 employee type 的子文档将其父文档聚合在一起。

<3> hobbyemployee 子文档的一个字段。