Challenge Catalog

65 challenges + 12 skill-aligned scenarios across 7 domains and 4 difficulty levels

65 challenges
beginner11intermediate22advanced23expert9multi-turn7

Search(15)

IDChallengeDifficultyDescription
fts-1-basic-matchFind the ArticlesbeginnerMulti-field match query to find articles mentioning "elasticsearch"
fts-2-simple-termExact Category MatchbeginnerTerm query on keyword field for exact author matching
fts-3-match-with-operatorMatch All TermsbeginnerMatch query with AND operator requiring all terms present
fts-4-bool-queryFiltered SearchintermediateBool query with must, should, and filter clauses
fts-5-must-notExclusion QueryintermediateBool query with must_not to exclude specific tags
fts-6-multi-match-boostingField BoostingintermediateMulti-match with field boosting (title^3)
fts-7-phrase-and-rangePrecise Phrase + Date RangeadvancedCombine match_phrase with range query on dates
fts-8-wildcard-existsWildcard and ExistsadvancedWildcard on SKU patterns combined with exists check
fts-9-complex-boolComplex Multi-Condition SearchexpertMulti-clause bool with must/must_not/should/filter on job listings
fts-10-fuzzyFuzzy Search for TyposintermediateFuzzy query with edit distance for typo tolerance
fts-11-dis-maxBest-Field with dis_maxadvanceddis_max query for best single field match with tie_breaker
fts-12-boostingDemote Without ExcludingadvancedBoosting query to reduce score of beginner articles
fts-13-nestedNested Object QueryexpertNested query to match conditions within same array element
fts-14-function-scoreCustom Relevanceexpertfunction_score with field_value_factor to boost by rating
mt-1-discover-and-searchDiscover Schema, Then SearchMULTI-TURNintermediateExplore unknown index schema, then find matching documents

Ingest(6)

IDChallengeDifficultyDescription
ingest-1-mapping-queryField Type QueriesbeginnerBool filter with term, range, and boolean field matching
ingest-2-sort-paginationSort and PaginationintermediateSort by price desc, limit to top 3, _source filtering
ingest-3-date-filterDate Range FilteringintermediateRange query on dates with ascending sort
ingest-4-terms-queryMulti-Value MatchingintermediateTerms query to match multiple status values at once
ingest-5-paginationDeep PaginationadvancedPage 2 of results using from/size with sort
ingest-6-count-and-filterConditional CountingadvancedCount documents matching criteria with size:0

Aggs(11)

IDChallengeDifficultyDescription
aggs-1-basic-termsCategory BreakdownbeginnerTerms aggregation to count documents per category
aggs-2-simple-avgAverage ValuebeginnerAvg metric aggregation on a numeric field
aggs-3-filtered-aggFiltered AggregationintermediateSum aggregation with query filter on category
aggs-4-cardinalityCount Unique ValuesintermediateCardinality aggregation for approximate distinct count
aggs-5-nested-statsRevenue by RegionadvancedTerms agg with nested stats sub-aggregation
aggs-6-date-histogramMonthly Sales TrendadvancedDate histogram with revenue sum sub-aggregation
aggs-7-multi-levelThree-Level AggregationexpertTriple nested: region -> category -> avg amount
aggs-8-percentilesLatency Percentilesadvancedp50/p95/p99 percentiles on response times
aggs-9-filtersNamed FiltersadvancedFilters aggregation for HTTP status code categorization
aggs-10-percentile-ranksSLO ComplianceexpertPercentile ranks to check what % of requests meet SLO
mt-2-explore-and-aggregateExplore Data, Then AggregateMULTI-TURNadvancedDiscover non-obvious field names, then compute revenue per region

Observability(14)

IDChallengeDifficultyDescription
obs-1-log-filteringFilter Error LogsbeginnerTerm query to find all ERROR-level logs
obs-2-service-errorsService Error InvestigationintermediateBool + range + sort for time-windowed service errors
obs-3-error-rateError Rate by ServiceadvancedNested terms aggs: service -> level distribution
obs-4-status-code-rangeHTTP 5xx AnalysisintermediateRange query on status_code field for server errors
obs-5-log-text-searchLog Pattern SearchadvancedCombined text match + level filter for error investigation
obs-6-latency-percentilesService Latency PercentilesadvancedAPM-style: terms on service -> percentiles p50/p95/p99
obs-7-error-spikeError Spike Detectionintermediatedate_histogram (1h) on ERROR logs to find incident window
obs-8-multi-serviceCross-Service Trace ErrorsadvancedTerms on trace_id -> cardinality on service.name
obs-9-top-errorsTop Error MessagesintermediateTerms agg on message.keyword for most common errors
obs-10-uptimeSLO Uptime CalculationexpertFilters agg with success (2xx) vs failure (5xx) per service
mt-3-unknown-logsUnknown Log SchemaMULTI-TURNadvancedInvestigate logs with non-standard field names (ts, severity, svc)
obs-esql-1-error-investigationLog Error Investigation (ES|QL)SCENARIOintermediateError timeline across 2500 microservice logs
obs-esql-2-error-breakdownService Error Breakdown (ES|QL)SCENARIOintermediateCount by service and log level
obs-esql-3-root-causeRoot Cause Investigation (ES|QL)MULTI-TURNSCENARIOadvancedMulti-turn: funnel through noise to find upstream failure

Vector(4)

IDChallengeDifficultyDescription
vec-1-knn-basicBasic kNN SearchbeginnerkNN nearest neighbor search on dense vector field
vec-2-knn-with-filterkNN with FilterintermediatekNN with category filter to restrict candidates
vec-3-hybridHybrid Text + VectoradvancedCombine kNN similarity with keyword text matching
vec-4-semantic-categorySemantic + AggregationexpertkNN results aggregated by category for classification

Security(9)

IDChallengeDifficultyDescription
sec-1-ip-rangeDenied Traffic from SubnetbeginnerWildcard/prefix on source IP + action filter
sec-2-failed-loginsBrute Force DetectionintermediateBool filter + terms agg to find IPs with most failed logins
sec-3-rare-domainsDNS Threat HuntingintermediateRare terms aggregation to find unusual domain queries
sec-4-alert-triageAlert Severity TriageadvancedFilters aggregation to categorize alerts by severity range
sec-5-correlationCompromised AccountsadvancedTerms + sub-agg to find users with both failed and successful logins
mt-4-investigateSecurity InvestigationMULTI-TURNexpertDiscover auth schema, find IPs with 3+ failed login attempts
sec-esql-1-brute-forceBrute Force Detection (ES|QL)SCENARIOintermediateFind IPs with 3+ failed auths in 1500 events
sec-esql-2-post-compromisePost-Compromise Analysis (ES|QL)SCENARIOadvancedTimeline of attacker activity after successful login
sec-esql-3-attack-chainFull Attack Chain (ES|QL)MULTI-TURNSCENARIOexpertMulti-turn: classify events into attack phases

Search(6)

IDChallengeDifficultyDescription
esql-1-basic-filterES|QL Basic FilteringSCENARIObeginnerFROM + WHERE + SORT + LIMIT on 600 articles
esql-2-stats-aggregationES|QL Stats AggregationSCENARIObeginnerSTATS with COUNT/AVG grouped BY category
esql-3-eval-computedES|QL Computed Fields with EVALSCENARIOintermediateEVAL + CASE for conditional classification
esql-4-log-error-analysisES|QL Log Error AnalysisSCENARIOintermediateError counting with COUNT_DISTINCT across 2500 logs
esql-5-time-bucketES|QL Time-Bucketed Log AnalysisSCENARIOadvancedBUCKET(@timestamp, 5 min) with log.level breakdown
esql-6-discover-and-queryES|QL Discovery and QueryMULTI-TURNSCENARIOadvancedMulti-turn: discover schema then aggregate top authors