排序elasticsearch top命中结果

Ada*_*pai 4 elasticsearch

我正在尝试在elasticsearch中执行查询以从特定日期范围中获取特定用户的重用.结果应该按userId分组并在trackTime字段上排序,我可以通过使用聚合使用组,但我无法在tracktime上对聚合桶进行排序,我写下以下查询

GET _search
{
"size": 0,
"query": {
    "filtered": {
        "query": {
            "bool": {
                "must": [
                    {
                        "range": {
                            "trackTime": {
                                "from": "2016-02-08T05:51:02.000Z"
                            }
                        }
                    }
                ]
            }
        },
        "filter": {
            "terms": {
                "userId": [
                    9,
                    10,
                    3
                ]
            }
        }
    }
},
"aggs": {
    "by_district": {
        "terms": {
            "field": "userId"
        },
        "aggs": {
            "tops": {
                "top_hits": {
                    "size": 2
                }
            }
        }
    }
}
 }
Run Code Online (Sandbox Code Playgroud)

还有什么我应该用来排序热门命中的结果?提前致谢...

Ric*_*cha 9

你可以使用sort喜欢.

"aggs": {
"by_district": {
    "terms": {
        "field": "userId"
    },
    "aggs": {
        "tops": {
            "top_hits": {
                "sort": [
                    {
                        "fieldName": {
                            "order": "desc"
                        }
                    }
                ],
                "size": 2
            }
        }
        }
     }
 }
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你