SereneDB
Use cases

Use cases: search, analytics and AI retrieval in one SQL engine

SereneDB speaks SQL over the PostgreSQL wire protocol. One inverted index serves full-text, vector, hybrid and geospatial search, and the same query can aggregate what it finds, over tables, Parquet files and attached databases. Each page below walks one workload in SQL that ran on SereneDB 26.11.1.

Analytics & data

The same engine aggregates with columnar scans, window functions and joins, over native tables, Parquet files, Iceberg tables and remote PostgreSQL or ClickHouse databases, and it can index files and remote tables where they are.

Columnar analytical SQL

Tables stored by column and skipped by zonemap, with GROUP BY ROLLUP, PIVOT and window functions over tables and Parquet.

GROUP BY ROLLUP (region, service)subtotals in one query

Search and GROUP BY fresh rows

A committed row is visible to the next query, and the inverted index publishes it at the next refresh (refresh_interval, 1000 ms by default). One SELECT then searches the fresh rows with @@ and aggregates them with GROUP BY.

refresh_interval = 1000default index refresh, in ms

Search log lines, group them in SQL

OpenTelemetry log records land in the otel_logs search table. @@ matches a phrase, a pattern or a trace id in them, and GROUP BY counts the matches by service and minute in the same query.

body @@ ts_like('%timeout%')matches SocketTimeoutException

Query remote databases where they live

CREATE SERVER names a remote PostgreSQL or ClickHouse you query as server.schema.table. Join them in one query, or put a BM25 index over a view while the rows stay at the source.

shop.public.productsserver.schema.table

Search files in object storage

Index Parquet, CSV, JSON and Iceberg files on S3 or disk in place with CREATE INDEX … USING inverted on a view, and refresh with REINDEX.

REINDEX INDEX logs_idxre-reads only new or changed files

AI & agents

Retrieval for LLM answers and SQL access for agents, over the PostgreSQL wire protocol, on the same index that serves search.

Hybrid retrieval for LLM answers

Chunks, embeddings and metadata in one table, retrieved with BM25 and vector search and in-index filters in one query; langchain-serenedb plugs it into LangChain.

AND access IN ('all', 'staff')permission filter in both searches

Scoped SQL and search for agents

Each agent connects over the PostgreSQL wire protocol as its own role; GRANT SELECT (id, body) decides what its BM25 and vector queries read, and DELETE fails unless granted.

GRANT SELECT (id, body) ON ticketsa role per agent

Search, Ask AI and MCP over docs

Serene Docs Search indexes a Git repo, folder, website or S3-compatible bucket into SereneDB. BM25 works with no model; hybrid search needs an embeddings provider, and cited answers and an MCP server are opt-ins.

"type": "hybrid"search.type · fulltext or hybrid

How these pages work

Every walkthrough ran on SereneDB 26.11.1

Each page’s five steps are SQL that ran on SereneDB 26.11.1 from an empty database, and the notes under them are that run’s output. Interactive demos say when their data is synthetic. Claims about other systems link to those systems’ own documentation. Performance figures come from two public benchmarks whose queries, settings and scripts are published: SearchBench (commit c3e7fe9: 1 billion OpenTelemetry log rows, 92 queries, 11 engines in 17 configurations, SereneDB 26.09.1) and VectorBench (commit 65b6ac1: 50 million Cohere Wikipedia embeddings, SereneDB 26.10.2).