pg_sift 1.0.0: the first release, an exact BM25 full-text index access method (`USING sift`) for PostgreSQL 18. ## Highlights - **Search:** `@@>` queries with `AND`, `OR`, `NOT`, phrases, prefix, wildcard, regex and fuzzy terms; exact BM25 scores and top-k with `ORDER BY sift.score(ctid) DESC LIMIT k`, and `count(*)` straight from the index. - **Fast and small:** two-level bitmap postings by heap ctid with block-max pruning. On 218k Wikipedia articles the default index is 48 MiB against pg_search's 183 MiB; `AND`/`OR` run 2.35x / 1.84x and joins 3.7x faster. Phrases and `count(*)` are behind (0.74x / 0.70x) with the default index; the optional `phrase_index = pairs` wins them (3.6x / 3.2x) at a 267 MiB index. - **Plain PostgreSQL:** case and accent folding, stemming, expression indexes, parallel `CREATE INDEX`, `VACUUM`, `REINDEX CONCURRENTLY`, `pg_dump`, same-major `pg_upgrade`, crash-safe and physical-replica safe (generic WAL), no `shared_preload_libraries`. ## Compatibility - PostgreSQL 18 only; x86-64; build from source with `make USE_PGXS=1` (no packages for this release). - Known limits: no multicolumn, unique or non-text indexes, no index-only scans, `sift.score()` through a partitioned parent is not supported (fixed in 1.1.0). Benchmarks (shared, loaded host; reproduce with `bench/bench all`). Every change: [CHANGELOG.md](https://github.com/brauliobo/pg_sift/blob/main/CHANGELOG.md).