Bird
Raised Fist0
Elasticsearchquery~20 mins

Sorting results in Elasticsearch - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Elasticsearch Sorting Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
What is the output order of this Elasticsearch sort query?

Given the following Elasticsearch query, what is the order of the returned documents by their price field?

Elasticsearch
{
  "query": { "match_all": {} },
  "sort": [
    { "price": { "order": "asc" } }
  ]
}
ADocuments sorted from lowest to highest price
BDocuments sorted from highest to lowest price
CDocuments sorted alphabetically by price field
DDocuments returned in random order
Attempts:
2 left
💡 Hint

Look at the order value inside the sort array.

❓ Predict Output
intermediate
2:00remaining
What happens if you sort by a non-existent field in Elasticsearch?

Consider this Elasticsearch query that sorts by a field rating which does not exist in any document. What will be the result?

Elasticsearch
{
  "query": { "match_all": {} },
  "sort": [
    { "rating": { "order": "desc" } }
  ]
}
AElasticsearch throws an error about missing field
BDocuments are returned in original order because <code>rating</code> is missing
CDocuments are sorted with missing <code>rating</code> treated as highest values
DDocuments are sorted with missing <code>rating</code> treated as lowest values
Attempts:
2 left
💡 Hint

By default ('_last'), missing fields are treated as highest values.

🔧 Debug
advanced
2:00remaining
Why does this Elasticsearch sort query cause an error?

Look at this Elasticsearch query that tries to sort by date descending but causes an error. What is the cause?

Elasticsearch
{
  "query": { "match_all": {} },
  "sort": [
    { "date": "desc" }
  ]
}
AThe <code>desc</code> value must be uppercase
BThe <code>date</code> field does not exist in the index
CSorting by date requires a script, not a field name
DThe sort syntax is invalid; the order must be inside an object with key <code>order</code>
Attempts:
2 left
💡 Hint

Check the correct syntax for sorting by a field with order.

🧠 Conceptual
advanced
2:00remaining
How does Elasticsearch handle sorting by multiple fields?

Given this sort clause, how does Elasticsearch order the documents?

{
  "sort": [
    { "price": { "order": "asc" } },
    { "rating": { "order": "desc" } }
  ]
}
ADocuments are sorted first by <code>price</code> ascending, then by <code>rating</code> descending for ties
BDocuments are sorted by <code>rating</code> descending, then by <code>price</code> ascending
CDocuments are sorted randomly ignoring the fields
DDocuments are sorted by the sum of <code>price</code> and <code>rating</code>
Attempts:
2 left
💡 Hint

Think about the order of fields in the sort array.

❓ Predict Output
expert
2:00remaining
What is the output of this Elasticsearch sort with nested field and missing values?

Consider documents with a nested field author.name. This query sorts by author.name.keyword ascending, treating missing values as last. What is the order of documents?

Elasticsearch
{
  "query": { "match_all": {} },
  "sort": [
    {
      "author.name.keyword": {
        "order": "asc",
        "missing": "_last"
      }
    }
  ]
}
ADocuments with missing <code>author.name.keyword</code> appear first, others sorted Z to A
BDocuments with <code>author.name.keyword</code> missing appear at the end, others sorted A to Z
CDocuments are sorted by <code>author.name.keyword</code> descending ignoring missing
DElasticsearch throws an error because <code>missing</code> is not a valid parameter
Attempts:
2 left
💡 Hint

Check the missing parameter usage in sorting.

Practice

(1/5)
1. What does the sort parameter do in an Elasticsearch query?
easy
A. It arranges the search results in a specified order.
B. It filters the search results based on a condition.
C. It changes the index mapping settings.
D. It deletes documents from the index.

Solution

  1. Step 1: Understand the purpose of sort

    The sort parameter is used to order search results by a field in ascending or descending order.
  2. Step 2: Differentiate from other parameters

    Filtering narrows results, mapping changes structure, and deleting removes data, none of which are sorting.
  3. Final Answer:

    It arranges the search results in a specified order. -> Option A
  4. Quick Check:

    Sorting = arranging results [OK]
Hint: Sort means order your results by a field [OK]
Common Mistakes:
  • Confusing sorting with filtering
  • Thinking sort deletes or changes data
  • Mixing sort with index settings
2. Which of the following is the correct syntax to sort results by the field price in descending order?
easy
A. "sort": [{"price": "desc"}]
B. "sort": {"price": "descending"}
C. "sort": ["price:desc"]
D. "sort": [{"price": "down"}]

Solution

  1. Step 1: Check Elasticsearch sort syntax

    Sorting uses an array of objects with field name and order as "asc" or "desc" strings.
  2. Step 2: Validate each option

    "sort": [{"price": "desc"}] uses correct JSON array and "desc" keyword. Others use invalid keywords or formats.
  3. Final Answer:

    "sort": [{"price": "desc"}] -> Option A
  4. Quick Check:

    Correct syntax uses array and "desc" [OK]
Hint: Use array with field and "asc" or "desc" strings [OK]
Common Mistakes:
  • Using wrong keywords like "descending" or "down"
  • Not using an array for sort
  • Incorrect JSON object structure
3. Given this Elasticsearch query snippet, what is the order of the returned documents by age?
{
  "sort": [{"age": "asc"}]
}
medium
A. Documents are sorted from oldest to youngest.
B. Documents are sorted alphabetically by age.
C. Documents are sorted randomly.
D. Documents are sorted from youngest to oldest.

Solution

  1. Step 1: Understand the meaning of "asc" in sorting

    "asc" means ascending order, so smaller values come first.
  2. Step 2: Apply to the field "age"

    Sorting by age ascending means documents with lower age values appear before higher ones.
  3. Final Answer:

    Documents are sorted from youngest to oldest. -> Option D
  4. Quick Check:

    "asc" = ascending = smallest to largest [OK]
Hint: "asc" means smallest to largest values [OK]
Common Mistakes:
  • Confusing "asc" with descending order
  • Thinking sorting is random
  • Assuming alphabetical sort on numbers
4. Identify the error in this Elasticsearch sort snippet:
{
  "sort": {"date": "asc"}
}
medium
A. Sort cannot be used with date fields.
B. Sort must be an array, not a single object.
C. Field name "date" must be inside quotes.
D. The order "asc" is invalid; should be "ascending".

Solution

  1. Step 1: Check the required structure for sort

    Sort expects an array of objects, even if sorting by one field.
  2. Step 2: Analyze the given snippet

    The snippet uses an object directly, missing the array brackets [].
  3. Final Answer:

    Sort must be an array, not a single object. -> Option B
  4. Quick Check:

    Sort = array of objects [OK]
Hint: Sort always uses an array, even for one field [OK]
Common Mistakes:
  • Using object instead of array for sort
  • Wrong order keywords like "ascending"
  • Thinking sort can't be used on dates
5. You want to sort search results first by category alphabetically ascending, then by price descending. Which is the correct sort clause?
hard
A. "sort": {"category": "asc", "price": "desc"}
B. "sort": [{"price": "desc"}, {"category": "asc"}]
C. "sort": [{"category": "asc"}, {"price": "desc"}]
D. "sort": [{"category": "desc"}, {"price": "asc"}]

Solution

  1. Step 1: Understand multi-level sorting order

    Sorting applies fields in order: first field sorts primary, second field breaks ties.
  2. Step 2: Match required order

    First by category ascending, then by price descending means category asc first, price desc second.
  3. Step 3: Validate syntax

    Sort must be an array of objects with field and order pairs.
  4. Final Answer:

    "sort": [{"category": "asc"}, {"price": "desc"}] -> Option C
  5. Quick Check:

    Primary asc category, secondary desc price [OK]
Hint: List sort fields in order inside array [OK]
Common Mistakes:
  • Reversing sort order of fields
  • Using object instead of array for multiple fields
  • Mixing ascending and descending incorrectly
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