我正在尝试在Elasticsearch中执行查询以获取具有最大销售变化百分比的产品列表。汇总结果应按 productId 分组,并按 salesChangePercent 排序。我已经搜索了一个解决方案,并尝试了诸如sorting elasticsearch top hits results之类的解决方案,但是我无法按 salesChangePercent 排序聚合存储桶。以下查询是唯一可行的查询,但是对我来说似乎不对,因为我正在使用“ max_salesChangePercent”进行排序。
我在这里做错什么了吗?有没有更好或更干净的方法来对聚合桶进行排序?非常感谢我能改善查询的任何帮助。
GET product_sales/_search
{
“size”: 0,
“query”: {
“range”: {
“salesChangePercent”: { “gte”: 50 }
}
},
“aggs”: {
“unique_products”: {
“terms”: {
“field”: “productId”,
“order" : {
“max_salesChangePercent”: “desc”
}
},
“aggs”: {
“top-sales”: {
“top_hits”: {
“size”: 1,
“_source”: {
“includes”: [
“productId”,
“productName”,
“salesChangePercent”,
]
}
}
},
“max_salesChangePercent”: {
“max”: {
“field”: “salesChangePercent”
}
}
}
}
}
}