Agregación Elasticsearch. Ordenar por cubo anidado doc_count

Lo que quiero lograr es la agregación por pares únicos (ciudad, ESTADO). Según la documentación de ElasticsearchLa agregación de términos no admite la recopilación de términos de múltiples campos en el mismo documento. Por lo tanto, creé un agg anidado como este:

{
  "size": 0,
  "aggs": {
    "cities": {
      "terms": {
        "field": "address.city",
        "size": 12
      },
      "aggs": {
        "states": {
          "terms": {
            "field": "address.stateOrProvince"
          },
          "aggs": {
            "topCity": {
              "top_hits": {
                "size": 1,
                "sort": [
                  {
                    "price.value": {
                      "order": "desc" }}]}}}}}}}}

Como resultado de esta agregación, obtengo una respuesta como esta:

{
  "aggregations": {
    "cities": {
      "buckets": [
        {
          "key": "las vegas",
          "doc_count": 5927,
          "states": {
            "buckets": [
              { "key": "nv", "doc_count": 5840 },
              { "key": "nm", "doc_count": 85 }
            ]
          }
        },
        {
          "key": "jacksonville",
          "doc_count": 5689,
          "states": {
            "buckets": [
              { "key": "fl", "doc_count": 2986 },
              { "key": "nc", "doc_count": 1962 },
              { "key": "ar", "doc_count": 290 }]}}]}}}

La pregunta es ¿cómo obtener los resultados ordenados por el doc_count más profundo?

La lista ordenada esperada debería ser así:

las vegas, nv (5840)Jacksonville, Florida (2986)Jacksonville, Carolina del Norte (1962)jacksonville, ar (290)las vegas, nm (85)

Respuestas a la pregunta(0)

Su respuesta a la pregunta