[英]elasticsearch aggregation bucket sort order
在Elasticsearch中,有没有一种方法可以使用自定义分数对聚合存储桶进行排序/排序?
我按客户名称进行分类。 每个客户有几个订单,其中有一个交货日期字段(delivdate)。 我想根据到当前日期的距离(接近度)对存储桶进行排序。
例如,对交货日期更接近今天日期的客户名称进行排序。
"aggs": {
"mygroup": {
"terms": {
"field": "customername",
"order" : { "_term" : "asc" }
}
}
}
谢谢
不幸的是,当前不允许使用scripted_metric
来对聚合进行排序。 正在跟踪的问题: https : //github.com/elastic/elasticsearch/issues/8486
如果您使用的是ElasticSearch v1.4.X,则可以尝试嵌套脚本化的指标聚合,然后使用它对术语存储桶进行排序。
"aggs": {
"mygroup": {
"terms": {
"field": "customername",
"order": {
"custom_script": "asc"
}
},
"aggs": {
"custom_script": {
"scripted_metric": {
...
}
}
}
}
}
未经测试,但从理论上讲,它应该可以完成这项工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.