vkay
vkay

Reputation: 3

Elasticsearch: Sort top_hits aggregation _score and then doc count

I am looking to sort aggregations based on _score and then the number of docs (in case of the same _score of multiple docs). What I have right now is to be able to sort by _score

  "aggs": {
    "name": {
      "terms": {
        "field": "name",
        "order": {"by_score": "desc"}
      },
      "aggs": {
        "top_hits": {
          "top_hits": {
            "size": 1,
            "_source": ["name"]
          }
        },
        "by_score": {
          "max": {"script": { "source": "_score" }
          }
        }
      }
    }
  }

Upvotes: 0

Views: 171

Answers (1)

vkay
vkay

Reputation: 3

I think I found the answer here Elasticsearch two level sort in aggregation list

The order needs to be in an array:

        "order": [
          {"by_score": "desc"},
          {"_count": "desc"}
        ]

Upvotes: 0

Related Questions