我正在尝试在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
}
}
}
}
}
}
我还应该使用什么来排序热门点击结果?提前谢谢......
答案 0 :(得分:9)
您可以使用sort
之类的。
"aggs": {
"by_district": {
"terms": {
"field": "userId"
},
"aggs": {
"tops": {
"top_hits": {
"sort": [
{
"fieldName": {
"order": "desc"
}
}
],
"size": 2
}
}
}
}
}
希望有所帮助