繁体   English   中英

elasticsearch聚合桶排序顺序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM