elastic / elastic/roadmap

ES|QL JSON_EXTRACT: Query-time extraction from JSON data (GA)

Open
#363 0 comments 0 reactions 0 assignees View on GitHub
Component: Elasticsearch product-area:platform
Dominant language
No language data
Stars
6
Forks
1
PR merge metrics
No merged PRs in 30d

Description

## Value Proposition

Retrieve specific elements from JSON data stored in string fields or `_source` using standard JSON path notation, directly within ES|QL queries. Analyze deeply nested JSON content at query time without defining mappings for every nested path or building ingest pipelines to flatten data in advance. Combined with unmapped field loading (also GA in 9.5), JSON_EXTRACT completes a full schema-on-read path in ES|QL.

## Expected Outcome

JSON_EXTRACT shipped in Tech Preview in Elasticsearch 9.4, enabling query-time extraction from JSON content stored in string fields or `_source`.

For GA, JSON_EXTRACT becomes production-ready:

- **Stable function signature and behavior:** JSON path notation for extracting strings, numbers, booleans, arrays, and sub-objects from any string field or `_source`
- **Type coercion:** extracted values can be cast to typed fields for filtering, aggregation, and downstream processing
- **Compatibility with schema-on-read:** works alongside unmapped field loading (`SET unmapped_fields = "load"`) so users can access `_source` fields and parse nested JSON in a single query
- **Performance and correctness fixes:** production-grade reliability for use in alerting rules, scheduled reports, and automated detection workflows

## Who is it for?

Developers and analysts working with semi-structured JSON data: application logs, API payloads, webhook events, and any data source where the schema is partially or fully unknown at ingest time.

## Use Cases

- Parsing nested fields from application log payloads without ingest pipeline changes
- Extracting structured data from semi-structured string fields at query time
- Security investigations across varied log formats where field structures differ per source
- Querying webhook or event data without pre-defining mappings for every possible nested path

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the requested GA behavior and its compatibility with schema-on-read and unmapped field loading described in the issue. The payload names no repository files, tests, or implementation entry points, so identify the existing Tech Preview implementation and its production-readiness gaps before defining completion criteria.

Written by the indexing model from the issue text.

Assessment

Tech stack
json
Domain
search
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.