排序总和聚合-嵌套(ElasticSearch)

排序总和聚合-嵌套(ElasticSearch),
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,要求是按员工Id和姓名分组,然后合计总额(工资)。我已经设法使它起作用了。但是,最终聚合结果必须按总和的降序排序。我试过两种方法,但订购似乎不起作用 var resp = elasticClient.Search<Employee>( k => k.Size(0).Query(q => q.QueryString(s => s.Query(query))) .Aggregations(a =>

要求是按员工Id和姓名分组,然后合计总额(工资)。我已经设法使它起作用了。但是,最终聚合结果必须按总和的降序排序。我试过两种方法,但订购似乎不起作用

 var resp =
        elasticClient.Search<Employee>(
            k => k.Size(0).Query(q => q.QueryString(s => s.Query(query)))
            .Aggregations(a => a.Terms("EmpId", v => v.Field(f => f.EmpId)
            .Aggregations(aa => aa.Terms("EmpName",vv => vv.Field(ff => ff.EmpName).OrderDescending("Salary")
            .Aggregations(aaa => aaa.Sum("Salary", sa => sa.Field(fff => fff.Salary))))))));
映射:

POST /sample_employee
{
  "mappings": {
      "post":{
          "properties": {
              "empId": {
                "type" : "long"
              },
              "empName": {
                    "type": "string",
                    "index": "not_analyzed"
                },
                "salary": {
                    "type": "float"                    
                },
                "dateId": {
                    "type": "long"
                },
                "divisionNumber":{
                    "type": "long"
                }
          }
      }      
  }
}
聚合查询:

   GET /sample_employee/_search
{
  "size": 0,
   "query": {
    "query_string": {
      "query": "dateId:(1780) AND divisionNumber:(1)"
    }
  },
  "aggs": {
    "EmpId": {
      "terms": {
        "field": "empId"        
      },
      "aggs": {
        "EmpName": {
          "terms": {
            "field": "empName",
            "size": 30,
            "order":{
            "Amount.value": "desc"}
          },          
          "aggs": {
            "Amount": {
              "sum": {
                "field": "salary"            
              }
            }            
          }
        }
      }
    }
  }   
}
答复:

"aggregations": {
  "EmpId": {
     "doc_count_error_upper_bound": 0,
     "sum_other_doc_count": 0,
     "buckets": [
        {
           "key": 10,
           "doc_count": 1,
           "EmpName": {
              "doc_count_error_upper_bound": 0,
              "sum_other_doc_count": 0,
              "buckets": [
                 {
                    "key": "Jerry Mathews",
                    "doc_count": 1,
                    "Amount": {
                       "value": 10000
                    }
                 }
              ]
           }
        },
        {
           "key": 11,
           "doc_count": 1,
           "EmpName": {
              "doc_count_error_upper_bound": 0,
              "sum_other_doc_count": 0,
              "buckets": [
                 {
                    "key": "Tom Raju",
                    "doc_count": 1,
                    "Amount": {
                       "value": 15000
                    }
                 }
              ]
           }
        },
        {
           "key": 12,
           "doc_count": 1,
           "EmpName": {
              "doc_count_error_upper_bound": 0,
              "sum_other_doc_count": 0,
              "buckets": [
                 {
                    "key": "Nel Gad",
                    "doc_count": 1,
                    "Amount": {
                       "value": 20000
                    }
                 }
              ]
           }
        },
        {
           "key": 13,
           "doc_count": 1,
           "EmpName": {
              "doc_count_error_upper_bound": 0,
              "sum_other_doc_count": 0,
              "buckets": [
                 {
                    "key": "Jim Thomas",
                    "doc_count": 1,
                    "Amount": {
                       "value": 25000
                    }
                 }
              ]
           }
        },
        {
           "key": 14,
           "doc_count": 1,
           "EmpName": {
              "doc_count_error_upper_bound": 0,
              "sum_other_doc_count": 0,
              "buckets": [
                 {
                    "key": "Amat Ahu",
                    "doc_count": 1,
                    "Amount": {
                       "value": 30000
                    }
                 }
              ]
           }
        }
     ]
  }
}
}

resp.OrderByDescending(c=>c.Salary)您可以分享
Employee
类,这将加快复制过程:)嗯。。。对我来说,它正在被分类。请分享您的elasticsearch响应,并指出为什么您认为它是错误的?是的,我正在使用您的代码。我正在测试ES 2.3和NEST 2.3。也许我不明白你的问题,这就是为什么我问起响应的原因。@Rob我已经分享了我用于测试的映射和查询。看起来每当我聚合时,排序似乎都不起作用。
"aggregations": {
  "EmpId": {
     "doc_count_error_upper_bound": 0,
     "sum_other_doc_count": 0,
     "buckets": [
        {
           "key": 10,
           "doc_count": 1,
           "EmpName": {
              "doc_count_error_upper_bound": 0,
              "sum_other_doc_count": 0,
              "buckets": [
                 {
                    "key": "Jerry Mathews",
                    "doc_count": 1,
                    "Amount": {
                       "value": 10000
                    }
                 }
              ]
           }
        },
        {
           "key": 11,
           "doc_count": 1,
           "EmpName": {
              "doc_count_error_upper_bound": 0,
              "sum_other_doc_count": 0,
              "buckets": [
                 {
                    "key": "Tom Raju",
                    "doc_count": 1,
                    "Amount": {
                       "value": 15000
                    }
                 }
              ]
           }
        },
        {
           "key": 12,
           "doc_count": 1,
           "EmpName": {
              "doc_count_error_upper_bound": 0,
              "sum_other_doc_count": 0,
              "buckets": [
                 {
                    "key": "Nel Gad",
                    "doc_count": 1,
                    "Amount": {
                       "value": 20000
                    }
                 }
              ]
           }
        },
        {
           "key": 13,
           "doc_count": 1,
           "EmpName": {
              "doc_count_error_upper_bound": 0,
              "sum_other_doc_count": 0,
              "buckets": [
                 {
                    "key": "Jim Thomas",
                    "doc_count": 1,
                    "Amount": {
                       "value": 25000
                    }
                 }
              ]
           }
        },
        {
           "key": 14,
           "doc_count": 1,
           "EmpName": {
              "doc_count_error_upper_bound": 0,
              "sum_other_doc_count": 0,
              "buckets": [
                 {
                    "key": "Amat Ahu",
                    "doc_count": 1,
                    "Amount": {
                       "value": 30000
                    }
                 }
              ]
           }
        }
     ]
  }