Date: 2026-05-21
Time: 12:00–12:25
Room: Fletcher
Level: Intermediate
Full-text search is table stakes for modern applications, yet Postgres users often face a difficult choice: bolt on Elasticsearch and accept the operational complexity, or settle for Postgres's built-in text search with its limited ranking capabilities. pg_textsearch offers a third path—a permissively licensed Postgres extension that brings production-grade BM25 ranking directly into your database.
This talk covers the design and implementation of pg_textsearch, a new open-source extension that implements an LSM-tree-inspired architecture within Postgres's access method framework. We'll explore how the extension manages an in-memory memtable that spills to immutable disk segments, handles concurrent access through Postgres's shared memory primitives, and maintains crash recovery guarantees using only native Postgres storage.
Key topics include: - Why BM25 still outperforms simpler ranking functions for keyword search - The challenges of building a write-optimized inverted index inside Postgres - Fieldnorm quantization and block-based storage for memory efficiency - Block-Max WAND for sub-linear top-k retrieval
Whether you're considering adding search to your Postgres application or curious about the internals of building a Postgres extension, this talk provides both practical guidance and deep technical insight.