0

I have a aggergation , ie a AutoComplete Drop down Search.

GET org-members /_search
{
  "size": 0, 
  "aggs": {
    "members": {
      "terms": {
        "field": "members.keyword",
        "size": 1000
      }
     }
    }
  }
}

You rececive all 1000 aggergated values.

1 Answers1

0

Simply use cardinality and bucket_sort .

cardinality Docs: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-metrics-cardinality-aggregation.html

bucket_sort Docs: https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-pipeline-bucket-sort-aggregation.html

GET org-members/_search
{
  "size": 0, 
  "aggs": {
    "total_count_of_aggergation": {
      "cardinality": {
        "field": "members.keyword"
      }
    },
    "members_aggs": {
      "terms": {
        "field": "members.keyword",
        "size": 10000 //put a very high value 
      },
      "aggs": {
        "bucket_sort": {
          "bucket_sort": {
            "from": 0,
            "size": 10
          }
        }
      }
    },
    "totalIds": {
      "stats_bucket": {
        "buckets_path": "members._count"
      }
    }
  }
}