在elasticsearch中,有没有办法使用自定义分数对聚合桶进行排序/排序?
我按客户名称进行分类。每个客户都有几个订单,其中包含交货日期字段(delivdate)。我想根据当前日期的距离(接近程度)对存储桶进行排序。
例如,对交货日期更接近今天日期的客户名进行排序。
"aggs": {
"mygroup": {
"terms": {
"field": "customername",
"order" : { "_term" : "asc" }
}
}
}
谢谢
答案 0 :(得分:0)
不幸的是,当前不允许使用scripted_metric
对聚合进行排序。正在跟踪问题:https://github.com/elastic/elasticsearch/issues/8486
答案 1 :(得分:-1)
如果您使用的是ElasticSearch v1.4.X,则可以尝试嵌套scripted metric聚合并使用它来订购术语桶。
"aggs": {
"mygroup": {
"terms": {
"field": "customername",
"order": {
"custom_script": "asc"
}
},
"aggs": {
"custom_script": {
"scripted_metric": {
...
}
}
}
}
}
没有经过测试,但从理论上讲,它应该可以胜任。