我需要从每个value中获取最大name的项目,并重复直到结束。

我将通过一个简单的示例对其进行解释。我有这样的物品:

Name| Value
-----------
AAA | 12
AAA | 35
AAA | 5
BBB | 1
BBB | 10
BBB | 5

排序后的预期结果:
Name| Value
-----------
AAA | 35
BBB | 10
AAA | 12
BBB | 5
AAA | 5
BBB | 1

我知道如何在Postgres中执行此操作(窗口函数:rank() over()),但是在Elastic中有可能吗?

最佳答案



这是例子

GET /yourindex/_search
{
"size": 0
  "aggs": {
    "yourGroup": {
      "terms": {
        "field": "Name",
        "size": 10
      },
      "aggs": {
        "theMax": {
          "max": {
            "field": "Value"
          }
        }
      }
    }
  }
}

引用:- this

关于sorting - Elasticsearch排序: by one from each group and repeat,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51239007/

10-14 19:49