elasticsearch聚合桶排序顺序

时间:2015-02-04 11:19:49

标签: javascript elasticsearch

在elasticsearch中,有没有办法使用自定义分数对聚合桶进行排序/排序?

我按客户名称进行分类。每个客户都有几个订单,其中包含交货日期字段(delivdate)。我想根据当前日期的距离(接近程度)对存储桶进行排序。

例如,对交货日期更接近今天日期的客户名进行排序。

       "aggs": {
          "mygroup": {
             "terms": {
                "field": "customername",
                "order" : { "_term" : "asc" }
             }
           }
       }

谢谢

2 个答案:

答案 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": {
            ...
          }
        }
      }
    }
  }

没有经过测试,但从理论上讲,它应该可以胜任。

相关问题