Elasticsearch how to use geohex_grid or geohash_grid return a full detail (or at lease get full detail when doc_count:1)

I have used elasticsearch geohex but what I can get is "key" and "doc_count" Is there a way to get full detail (or in case doc_count = 1)

belove is an example request:

POST vt_data_warehouse/_search?size=0
{
  "aggregations": {
    "tiles_in_bounds": {
      "geohash_grid": {
        "field": "position",
        "precision": 6,
        "bounds": {
          "top_left": "POINT (104.731344 11.541166)",
          "bottom_right": "POINT (104.89368038286129 11.464655721322128)"
        }
      }
    }
  }
}

and this is the result:

"aggregations": {
    "tiles_in_bounds": {
      "buckets": [
        {
          "key": "",
          "doc_count": 32
        },
        {
          "key": "",
          "doc_count": 30
        },
        {
          "key": "",
          "doc_count": 21
        },
        {
          "key": "",
          "doc_count": 8
        },
        {
          "key": "",
          "doc_count": 7
        },
        {
          "key": "",
          "doc_count": 2
        },
        {
          "key": "",
          "doc_count": 1
        },
        {
          "key": "",
          "doc_count": 1
        },
        {
          "key": "",
          "doc_count": 1
        },
        {
          "key": "",
          "doc_count": 1
        },
        {
          "key": "",
          "doc_count": 1
        }
      ]
    }
1

There are 1 answers

2
Val On BEST ANSWER

In order to show the documents in each bucket, you can simply add a top_hits sub-aggregation, like this:

POST vt_data_warehouse/_search?size=0
{
  "aggregations": {
    "tiles_in_bounds": {
      "geohash_grid": {
        "field": "position",
        "precision": 6,
        "bounds": {
          "top_left": "POINT (104.731344 11.541166)",
          "bottom_right": "POINT (104.89368038286129 11.464655721322128)"
        }
      },
      "aggs": {
        "details": {
          "top_hits": {
            "size": 50
          }
        }
      }
    }
  }
}