Java实现ES嵌套分组查询

Java实现ES嵌套分组查询类似于如下sql语句:select field1, field2, sum(field3) from table_name group by field1, field2;
ES的格式:

"visit": {
        "type": "nested",
        "properties": {
          "visitId": {
            "type": "keyword"
          },
          "visitDate": {
            "type": "keyword"
          },
          "visit_end_date": {
            "type": "keyword"
          },
          "person": {
            "type": "nested",
            "properties": {
              "pId": {
                "type": "keyword"
              },
              "pName": {
                "type": "keyword"
              },
              "gender": {
                "type": "keyword"
              },
              "gender_code": {
                "type": "keyword"
              },
              "birthday": {
                "type": "keyword"
              }, 
            }
          },
          "diagnosis": {
            "type": "nested",
            "properties": {
              "dId": {
                "type": "keyword"
              },
              "dtypeCode": {
                "type": "keyword"
              }
            }
          }
}

1.QueryBuilders.nestedQuery()
2.采用HighClient 来进行查询