我做了一个聚合了一些数据的查询结果,它的聚合键是number。我尝试按键对聚合结果进行排序。elasticsearch把key当作字符串。
由于当前结果桶数量较大,客户端无法修改。你知道这个吗?
这是我的疑问。
"aggregations" : {
"startcount" : {
"terms" : {
"script" : "round(doc['startat'].value/1000)",
"size" : 1000,
"order" : { "_term" : "asc" }
}
}
}
和当前结果桶。
"buckets": [
{
"key": "0",
"doc_count": 68
},
{
"key": "1",
"doc_count": 21
},
{
"key": "10",
"doc_count": 6
},
{
"key": "11",
"doc_count": 16
},
这是我期望的结果。
"buckets": [
{
"key": "0",
"doc_count": 68
},
{
"key": "1",
"doc_count": 21
},
{
"key": "2", // not '10'
"doc_count": 6
},
{
"key": "3", // not '11'
"doc_count": 16
},
2条答案
按热度按时间bsxbgnwa1#
使用value_script方法应该可以解决按字母顺序排序的问题:
示例:
a0zr77ik2#
这是一个多组按方案,其中数据按键降序排序。
输出