Highlights
-
CREATE INDEX CONCURRENTLY: BM25 indexes now support concurrent index builds, allowing index creation without blocking writes.
-
WAND pivot selection: Multi-term queries use improved pivot selection for faster top-k retrieval, complementing the existing Block-Max WAND optimization.
-
Iterative index scans: Queries without an explicit LIMIT now use exponential backoff to avoid scanning the entire index upfront.
-
Progress reporting:
CREATE INDEXnow reports progress viapg_stat_progress_create_index, visible in standard Postgres monitoring tools. -
Index scan statistics: BM25 index scans now report tuple and page counts via
pg_statcounters (visible inpg_stat_user_indexesandEXPLAIN (ANALYZE, BUFFERS)).
Bug Fixes
-
Fixed BM25 scoring accuracy: block-max upper bounds now use minimum fieldnorm instead of average, preventing valid matches from being incorrectly skipped by BMW optimization.
-
Fixed implicit
text <@> textoperator resolution in DML subqueries (INSERT...SELECT, UPDATE...FROM, etc.). -
Fixed
to_bm25query()to reject index names that don't refer to a BM25 index.
Full Changelog: v0.5.0...v0.5.1