无法在ElasticSearch中对聚合桶结果进行排序

时间:2020-08-06 20:01:24

标签: elasticsearch elasticsearch-aggregation

我正在尝试在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”
                    }
                }
            }
        }
    }
}

0 个答案:

没有答案