Roadmap
/ RoadmapRoadmap #
A living list of what is planned next. Items land when they are done — the limitations page tracks the counterpart “what does not work today”.
Querying and analytics #
- SQL — the query subset over the search DSL is live on
POST /_sql— filter/aggregate/sort/paginate,$1parameters, PIT snapshots, grouped cursor pages — withPOST /_prqlalongside it (see the SQL & PRQL reference and the syntax walkthrough). The frontend now lives in the engine (featuresql), and the WebAssembly build runs statements through the same parse/lower (search_with_sql) — the base for SQL demos in the live playground. What remains:JOINacross collections, subqueries, window functions, theEXPLAINlowering trace, the two-layer cache closeout, and the playground rollout (envelope parity plus demo pages).
Storage #
- Object storage backends — the segment file layout is already object-storage-friendly (content-addressed write-once files, generationed manifests with replication-safe publish ordering, so an external replicator can mirror a shard to S3/OSS). What remains is the first-class option: storage-tier configuration, bucket lifecycle and recovery straight from remote storage.
- Parquet interop — the engine already reads Parquet columns through its column API (opt-in engine feature). What remains is the user-facing mount: exposing standard Parquet data as a collection, as an exchange format with big-data systems.
Operations #
- Backup and restore API — point-in-time snapshots with restore semantics, replacing today’s manual data-directory procedure (see Backup and restore).
- Cluster-wide state and health — aggregating
/_cluster/stateand health across regions instead of the serving region only.
AI and semantic search #
- Chunking for
semantic_text— long-document semantic search: split field text into overlapping chunks, embed each, keep several vectors per document, score by the best-matching chunk. Blocked on engine support for multiple vectors per (document, field) — today’s vector store keeps exactly one (FlatVectorStore::addoverwrites), so this spans the mutable store, the epoch builder, the HNSW index and score aggregation. Until then the field embeds whole texts in one call (fine for titles, names, log lines; bounded by the model’s input limit), and long documents have a working pattern: chunk into child documents at write time, search with thesemanticquery and collapse by parent id (see field collapsing).
Multi-tenancy #
- Tenant grouping — namespaces grouped under one tenant identity, generalizing today’s 1:1 namespace mapping.