Repository navigation
pg_vectorsearch 0.1.0 #367
erimatnor
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Highlights
This is the first release of pg_vectorsearch, currently at alpha level. The
core works and you can test it on real data today, but there are gaps you
should know about before you do (see Known Issues below). This is what works
today:
parallel builds, and k-nearest-neighbor search with L2, inner
product and cosine distance.
vec32andvec16types so that it can operate independently. But PRISM also works
with pgvector's
vectorandhalfvecdata types. You can build aPRISM index directly on existing pgvector columns with no rewrites
and no copies, and queries written with pgvector's operators work
unchanged.
tune:
prism.nprobe, the number of clusters a query scans. Thedefault of 0 picks a value automatically to target roughly 95%
recall.
without manual intervention. Right now, partitions are not
re-split automatically under churn, so the partitioning can become
suboptimal. You can split oversized partitions manually by calling
prism_rebalance, or rebuild the full index from scratch withREINDEX. We plan to remove the need for these manual steps andhandle drift automatically. For this version, we don't recommend
creating the index on an empty table and filling it afterwards.
turned into tombstones by VACUUM so that scans can skip them, but
the space inside index pages isn't yet reused. Run
REINDEXtoreclaim it.
Breaking changes & upgrade notes
None.
There is no upgrade path from 0.1.0-rc1 or 0.1.0-rc2. To switch, drop
and recreate the extension and its indexes. From this release
on, upgrades between final releases ship an upgrade script.
Known issues
WHEREfilter can return fewer rows thanLIMITwhen the rowsthat pass are not spread through the candidates the scan ranked. The
scan does not go back for more
(#188).
buffer sized from
work_mem. ALIMITlarger than that bufferholds -- or no
LIMITat all -- is truncated to however manyrows fit (or the table's estimated row count, if smaller),
silently, with no error. Raise
work_memto return more rows.prism_rebalanceleaves the posting lists it replaced on disk. OnlyREINDEXreclaims that space(#224).
prism.leaf_refine_thresholdabove 0 can build an index withmuch lower recall. Leave it at 0
(#183).
prismrefuses unlogged tables and expression indexes, and indexesat most 1968 dimensions.
Changes
\dxnow reads "ANN vector searchwith PRISM index"
(eedfabe)
choose the index
(da022db)
Every change is in the commit history:
https://github.com/timescale/pg_vectorsearch/commits/v0.1.0
Full changelog
This discussion was created from the release pg_vectorsearch 0.1.0.
All reactions