0

最大値を含むドキュメントからフィールドを取得するelasticsearchの方法はありますか? (基本的に、scala のmaxByと同様に動作します)

例(嘲笑):

{
    "aggregations": {
        "grouped": {
            "terms": {
                "field": "grouping",
                "order": {
                    "docWithMin": "asc"
                }
            },
            "aggregations": {
                "withMax": {
                    "max": {
                        "maxByField": "a",
                        "field": "b"
                    }
                }
            }
        }
    }
}

for which{"grouping":1,"a":2,"b":5},{"grouping":1,"a":1,"b":10} は (ようなもの): を返します{"grouped":1,"withMax":5}。ここで、最大値は最初のオブジェクト"a"が高いため、最初のオブジェクトから取得されます。

4

1 に答える 1

0

a が最大であるドキュメントを元に戻したいだけだと仮定すると、次のことができます。

{
  "size": 0,
  "aggs": {
    "grouped": {
      "terms": {
        "field": "grouping"
      },
      "aggs": {
          "maxByA": {
            "top_hits": {
            "sort": [
             {"a": {"order": "desc"}}
            ],
            "size": 1
          }
        }
      }
    }
  }
}
于 2015-12-08T16:26:23.937 に答える