Bird
Raised Fist0
Elasticsearchquery~5 mins

Cardinality aggregation in Elasticsearch - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is Cardinality aggregation in Elasticsearch?
Cardinality aggregation counts the number of unique values for a specific field in your data. It's like counting how many different types of fruits are in a basket.
Click to reveal answer
intermediate
How does Cardinality aggregation handle approximate counts?
It uses an algorithm that estimates unique counts quickly with a small margin of error, which is faster and uses less memory than exact counting.
Click to reveal answer
intermediate
Which parameter controls the precision of Cardinality aggregation?
The 'precision_threshold' parameter controls how accurate the count is. Higher values mean more accuracy but use more memory.
Click to reveal answer
beginner
Write a simple Cardinality aggregation query to count unique user IDs.
{ "aggs": { "unique_users": { "cardinality": { "field": "user_id" } } } }
Click to reveal answer
intermediate
Why might you choose Cardinality aggregation over Terms aggregation for counting unique values?
Cardinality aggregation is more efficient for counting unique values when you don't need to list all values. Terms aggregation returns buckets for each value, which can be slow and memory-heavy for many unique values.
Click to reveal answer
What does Cardinality aggregation count in Elasticsearch?
ANumber of unique values in a field
BSum of numeric values
CAverage of numeric values
DMaximum value in a field
Which parameter adjusts the accuracy of Cardinality aggregation?
Ashard_size
Bmax_buckets
Csize
Dprecision_threshold
What is a benefit of using Cardinality aggregation over Terms aggregation for unique counts?
AReturns all unique values as buckets
BUses less memory and is faster for large unique sets
CCalculates sum of values
DSorts values alphabetically
If you want an exact unique count with no approximation, what should you do?
AUse Terms aggregation instead
BSet precision_threshold very high
CUse Cardinality aggregation with default settings
DUse Sum aggregation
What type of data is Cardinality aggregation best suited for?
AFields with date values only
BFields with only numeric values
CFields with many unique values
DFields with only text values
Explain how Cardinality aggregation works and when you would use it.
Think about counting different items quickly without listing them all.
You got /4 concepts.
    Describe the difference between Cardinality aggregation and Terms aggregation.
    Consider what happens when you have many unique values.
    You got /4 concepts.

      Practice

      (1/5)
      1.

      What does the cardinality aggregation in Elasticsearch do?

      easy
      A. Calculates the sum of values in a field
      B. Sorts documents by a field
      C. Finds the average value of a field
      D. Counts the number of unique values in a field

      Solution

      1. Step 1: Understand the purpose of cardinality aggregation

        Cardinality aggregation is designed to count unique values in a specified field.
      2. Step 2: Compare with other aggregations

        Sum and average aggregations calculate totals and averages, not unique counts. Sorting is unrelated.
      3. Final Answer:

        Counts the number of unique values in a field -> Option D
      4. Quick Check:

        Cardinality = Unique count [OK]
      Hint: Cardinality = count unique values fast [OK]
      Common Mistakes:
      • Confusing cardinality with sum or average
      • Thinking it returns exact counts always
      • Mixing it with sorting or filtering
      2.

      Which of the following is the correct syntax to define a cardinality aggregation on the field user_id in Elasticsearch?

      {
        "aggs": {
          "unique_users": {
            "cardinality": {
              "field": "user_id"
            }
          }
        }
      }
      easy
      A. { "aggs": { "unique_users": { "cardinality": { "field": "user_id" } } } }
      B. { "aggs": { "unique_users": { "terms": { "field": "user_id" } } } }
      C. { "aggs": { "unique_users": { "sum": { "field": "user_id" } } } }
      D. { "aggs": { "unique_users": { "avg": { "field": "user_id" } } } }

      Solution

      1. Step 1: Identify the aggregation type for unique counts

        The cardinality aggregation is used to count unique values, so the key must be "cardinality".
      2. Step 2: Check the field name and structure

        The field is correctly specified as "user_id" inside the cardinality object.
      3. Final Answer:

        { "aggs": { "unique_users": { "cardinality": { "field": "user_id" } } } } -> Option A
      4. Quick Check:

        Correct syntax uses "cardinality" with "field" [OK]
      Hint: Cardinality uses "cardinality" key with "field" [OK]
      Common Mistakes:
      • Using terms aggregation instead of cardinality
      • Using sum or avg aggregations for unique counts
      • Incorrect JSON structure or missing braces
      3.

      Given the following Elasticsearch aggregation query:

      {
        "aggs": {
          "unique_countries": {
            "cardinality": {
              "field": "country"
            }
          }
        }
      }

      If the indexed documents have countries: ["US", "US", "FR", "DE", "FR", "JP"], what is the expected approximate output value for unique_countries?

      medium
      A. 3
      B. 4
      C. 5
      D. 6

      Solution

      1. Step 1: Identify unique countries in the list

        The countries are US, FR, DE, JP. Counting unique values gives 4.
      2. Step 2: Understand cardinality output

        Cardinality aggregation returns approximate unique counts, which should be 4 here.
      3. Final Answer:

        4 -> Option B
      4. Quick Check:

        Unique countries count = 4 [OK]
      Hint: Count distinct values in the field for cardinality [OK]
      Common Mistakes:
      • Counting duplicates as unique
      • Confusing total documents with unique count
      • Expecting exact count always (approximate)
      4.

      Identify the error in this cardinality aggregation query:

      {
        "aggs": {
          "unique_users": {
            "cardinality": {
              "field_name": "user_id"
            }
          }
        }
      }
      medium
      A. Aggregation name cannot be "unique_users"
      B. Missing closing brace for "aggs"
      C. "field_name" should be "field"
      D. Cardinality aggregation requires a "size" parameter

      Solution

      1. Step 1: Check the field parameter name

        The correct key for specifying the field is "field", not "field_name".
      2. Step 2: Verify JSON structure and parameters

        The braces are correctly closed, aggregation name is valid, and "size" is not required for cardinality.
      3. Final Answer:

        "field_name" should be "field" -> Option C
      4. Quick Check:

        Use "field" key for cardinality field [OK]
      Hint: Use "field", not "field_name" in cardinality [OK]
      Common Mistakes:
      • Using wrong key "field_name" instead of "field"
      • Adding unnecessary parameters like "size"
      • Misnaming aggregation or missing braces
      5.

      You want to find the approximate number of unique products sold in each category using Elasticsearch. Which aggregation setup correctly combines terms and cardinality aggregations?

      {
        "aggs": {
          "by_category": {
            "terms": { "field": "category" },
            "aggs": {
              "unique_products": {
                "cardinality": { "field": "product_id" }
              }
            }
          }
        }
      }
      hard
      A. This setup groups by category and counts unique products per category
      B. This setup counts unique categories per product
      C. This setup sums product_id values per category
      D. This setup finds average product_id per category

      Solution

      1. Step 1: Understand the terms aggregation

        "terms" groups documents by unique values in "category" field.
      2. Step 2: Understand the nested cardinality aggregation

        Inside each category bucket, cardinality counts unique "product_id" values.
      3. Final Answer:

        This setup groups by category and counts unique products per category -> Option A
      4. Quick Check:

        Terms + cardinality = unique counts per group [OK]
      Hint: Nest cardinality inside terms to count unique per group [OK]
      Common Mistakes:
      • Confusing aggregation order or nesting
      • Using cardinality on category instead of product_id
      • Expecting sum or average instead of unique count
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard