Roadmap

Roadmap

/ Roadmap

Roadmap #

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, $1 parameters, PIT snapshots, grouped cursor pages — with POST /_prql alongside it (see the SQL & PRQL reference and the syntax walkthrough). The frontend now lives in the engine (feature sql), 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: JOIN across collections, subqueries, window functions, the EXPLAIN lowering 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/state and health across regions instead of the serving region only.
  • 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::add overwrites), 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 the semantic query 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.