我有一个使用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,但我们还没有。
答案 0 :(得分:1)
使用构面查询获取查询中返回的总金额,其中构面包含您需要计数的字段