ElasticSearch - 如何按字段SUM函数_score

时间:2014-03-06 21:56:59

标签: elasticsearch

我有一个使用function_score对结果进行排名的查询。以下是返回内容的示例:

 {
    "_index": "clone",
    "_type": "authEvent",
    "_id": "6431823",
    "_score": 4.8,
    "fields": {
       "authInput.uID": "MPXWDKW2P",
       "authResult.productValue": 1,
       "authInput.userName": "F936F3AA-E26C-48DB-BDBC-44956B634260",
       "authResult.authEventDate": "2014-02-27T09:29:30.703125-06:00",
       "authResult.rulesFailed": [
          "AuthCountByUser"
       ]
    }
 }

我想要的是获取结果并运行此SQL语句的等效项:

SELECT TOP 20 "authInput.userName", SUM("_score")
FROM foo
GROUP BY "authInput.userName"
ORDER BY SUM("_score") DESC

我怎样才能用ES做到这一点? 注意:我使用的是ES 0.9x,我们很快就会转向1.0.0,但我们还没有。

1 个答案:

答案 0 :(得分:1)

使用构面查询获取查询中返回的总金额,其中构面包含您需要计数的字段