在elasticsearch中,有没有一种方法可以使用自定义分数对聚合存储桶进行排序?
我正在按客户名称分类。每个客户都有几个订单,这些订单都有一个交货日期字段(delivdate)。我想根据与当前日期的距离(接近程度)对存储桶进行排序。
例如,对交付日期更接近今天日期的customername进行排序。
"aggs": {
"mygroup": {
"terms": {
"field": "customername",
"order" : { "_term" : "asc" }
}
}
}谢谢
发布于 2016-02-01 11:41:06
遗憾的是,目前不允许使用scripted_metric对聚合进行排序。正在跟踪的问题位于:https://github.com/elastic/elasticsearch/issues/8486
发布于 2015-02-04 21:45:02
如果您使用的是ElasticSearch v1.4.X,您可以尝试嵌套一个scripted metric聚合,并使用它来对术语桶进行排序。
"aggs": {
"mygroup": {
"terms": {
"field": "customername",
"order": {
"custom_script": "asc"
}
},
"aggs": {
"custom_script": {
"scripted_metric": {
...
}
}
}
}
}没有经过测试,但从理论上讲,它应该可以完成这项工作。
https://stackoverflow.com/questions/28320062
复制相似问题