Releases: tensorchord/pgvecto.rs
v0.4.0-alpha.2
What's Changed
- refactor: rework quantization abstraction by @usamoi in #591
- feat: add metrics dot and cos by @cutecutecat in #566
- refactor: rabitq by @usamoi in #593
- docs: delete sparse vector search comparison in readme by @JinweiOS in #595
- refactor: use transposed centroids in PQ preprocess by @usamoi in #594
- fix: reduce length of directory name by @usamoi in #588
Full Changelog: v0.4.0-alpha.1...v0.4.0-alpha.2
v0.4.0-alpha.1
fix: set correct svecf32 header while creating SVecf32Output (#590) Signed-off-by: usamoi <usamoi@outlook.com>
v0.3.0
chore: remove prefilter, stand-alone-test and default feature (#505) * chore: remove prefilter, stand-alone-test and default feature Signed-off-by: usamoi <usamoi@outlook.com> * fix: simplify hnsw entry Signed-off-by: usamoi <usamoi@outlook.com> --------- Signed-off-by: usamoi <usamoi@outlook.com>
v0.3.0-alpha.2
What's Changed
- fix: disable UNLOGGED vector indexes by @usamoi in #443
- fix: invalid check for bvector with 64 dims by @silver-ymz in #444
- fix: take
MyDatabaseId
into handle to resolve conflicts of OIDs in multidatabases by @usamoi in #445 - feat: add optimizing_threads to function by @cutecutecat in #375
- chore: add another implementation of multiversion by @usamoi in #446
- fix: validate_index for veci8 & rm deprecated feature. by @my-vegetable-has-exploded in #451
- feat: stand alone test by @whateveraname in #448
- fix: optiming threads deadlock by @cutecutecat in #453
- feat: sync CREATE INDEX by @usamoi in #462
- fix: fix openai option gucs setting. by @my-vegetable-has-exploded in #469
- feat: support aggregate function for vector. by @my-vegetable-has-exploded in #463
- fix: elkan K-means impl for some vector types by @usamoi in #472
- fix: skip partitioned tables in
pg_vector_index_stat
by @usamoi in #478 - fix: use f*_algebraic intrinsics, instead of f*_fast intrinsics by @usamoi in #481
- feat: support element-wise multiplication. by @my-vegetable-has-exploded in #480
- feat: add vector_norm, vector_dims and normalize for all vector types by @usamoi in #485
- fix: return type of vector_norm for svector & bvector by @usamoi in #487
- feat: temporary support for sparse aggregate. by @my-vegetable-has-exploded in #489
Full Changelog: v0.3.0-alpha.1...v0.3.0-alpha.2
v0.3.0-alpha.1
alpha release for 0.3.0
What's Changed
- refactor: replace heap of heaps with loser tree in merging results by @usamoi in #315
- refactor: faster algorithm for parsing vector strings by @usamoi in #316
- chore: set storage = EXTERNAL by default for vector types by @usamoi in #321
- fix: remove openai embedding by @usamoi in #336
- feat: support vector subscript by @usamoi in #329
- fix: remove ctor by @usamoi in #339
- chore: fix the nightly trigger condition by @kemingy in #306
- ci: fix cargo-install for pgrx patch by @usamoi in #341
- feat: support binary representation by @usamoi in #314
- chore: use latest commit SHA to trigger the nightly release by @kemingy in #342
- refactor: refine delete RPC by @usamoi in #351
- chore: consistent slice behavior with Python by @usamoi in #352
- chore: add '-c logging_collector=on' to docker CMD by @usamoi in #353
- feat: support sparse vector by @silver-ymz in #299
- chore: drop support for pg12, pg13 by @usamoi in #344
- fix: comparsion of svector by @silver-ymz in #357
- refactor: define detailed error types by @usamoi in #356
- ci: increase concurrency by @usamoi in #362
- doc: fix docker tag by @VoVAllen in #364
- fix: python test by @cutecutecat in #365
- ci: fix "cache save failed" by @usamoi in #366
- refactor: add crate "base" by @usamoi in #367
- refactor: faster IVF & PQ by @whateveraname in #328
- feat: new openai embedding by @cutecutecat in #350
- chore: Update blog link by @gaocegege in #370
- refactor: rework vector abstraction by @usamoi in #369
- ci: fix nightly releases by @usamoi in #389
- ci: add sccache for release by @usamoi in #391
- fix: support null insert by @cutecutecat in #390
- ci: build zip pkg by @usamoi in #392
- fix: remove sighup handler by @cutecutecat in #394
- feat: support binary vector by @silver-ymz in #368
- chore: upgrade 0.2.1 script by @cutecutecat in #395
- fix: bvector subscription may modify padding bits by @silver-ymz in #401
- fix: bvector subscription may modify padding bits by @silver-ymz in #402
- chore: update pgrx version by @usamoi in #400
- feat: support sparse vector with 1_048_575 dims by @silver-ymz in #399
- feat: support veci8 by @my-vegetable-has-exploded in #326
- fix: hack for simd inline by @usamoi in #410
- fix: grant permission for
pg_vector_index_stat
in install sql by @usamoi in #416 - feat: synchronous remote index dropping by @usamoi in #414
- ci: remove cargo-pgrx in ci by @usamoi in #420
- feat: add x64 simd for sparse vector operations by @silver-ymz in #417
- fix: relax veci8 test precision. by @my-vegetable-has-exploded in #423
- chore: cherry back 0.2 branch by @cutecutecat in #424
- Update pgvecto.rs README.md with new features and documentation link by @VoVAllen in #425
- ci: vendored
pg_config
contents and pgrx_bindings by @usamoi in #426 - fix: returns no tuples when a NULL query comes by @usamoi in #428
- fix: a set of incorrect behaviors by @usamoi in #430
- chore: upload --0.3.0 schema update script by @usamoi in #437
- feat: Support binary copy in python SDK. by @my-vegetable-has-exploded in #419
- docs: add my-vegetable-has-exploded as a contributor for code by @allcontributors in #439
New Contributors
- @whateveraname made their first contribution in #328
- @my-vegetable-has-exploded made their first contribution in #326
Full Changelog: v0.2.1...v0.3.0-alpha.1
v0.2.1
Improvements
- NULL Support:
NULL
can now be safely inserted into vector columns without error. They will be skipped duringpgvecto.rs
index creation, but exist in the table. A query on a vector column will never return a result containing aNULL
. - Signal Handler Fix: Now we use
SIGQUIT
instead ofSIGHUP
to trigger a peaceful exit, sinceSIGHUP
is defined as configure reload byPostgres
. - Upgrade Script Refine: Due to some symbol renaming, the upgrade path from
v0.1.10
tov0.2.0
is broken. Users can now upgrade directly tov0.2.1
if they are currently usingv0.1.10
.
v0.0.0-nightly
DO NOT use this version. Internal use only.
v0.2.1-alpha.2
DO NOT use this version. Internal use only.
v0.2.1-alpha.1
DO NOT use this version. Internal use only.
v0.2.0
New features:
-
VBASE Mode Integration: pgvecto.rs integrates the cutting-edge VBASE method from OSDI 2023 and set it as default, substantially refining vector search efficiency within PostgreSQL. This enhancement not only accelerates the standard search process but also ensures accurate results, even when complex filters and join operations are applied.
-
FP16 Support: Users can now store their embeddings in PostgreSQL using half the float32 size, significantly improving latency. Our experiments indicate that this optimization has a negligible impact on final recall less than 1%.
-
Asynchronous Indexing: Insertion operations are now non-blocking, ensuring a smoother, more efficient data insertion and indexing process.
-
Doubled Query Performance: pgvecto.rs 0.2 boasts a query performance that is twice as fast as that of 0.1, marking a significant leap forward in our system's efficiency.
-
Enhanced Visibility into Internal Status: The new
pg_vector_index_stat
v offers users a transparent view into the indexing internals of pgvecto.rs. This feature allows for real-time monitoring of index construction, configuration adjustments, and detailed statistical analysis, fostering a more intuitive and controlled environment.
Breaking Changes:
-
Schema Modification for Installation: pgvecto.rs has shifted its installation location from the public schema to the vectors schema. This change necessitates updates in schema references within your queries and scripts.
-
Default Search Mode Update: The default search mode has been updated to VBASE. To revert to the basic search mode, users must manually execute the command SET vectors.search_mode = basic;. This change ensures that users benefit from the enhanced performance and accuracy of VBASE by default.
-
Revised prefilter Option: The semantics of the prefilter option have been redefined. The prefilter option now specifically controls whether deleted points are skipped from the search process. Meanwhile, the filter scenarios previously handled by this option are now adeptly managed by the VBASE mode, which offers superior accuracy and performance.
-
Index Compatibility and Reindexing Requirement: Indexes created with versions prior to 0.2 are not compatible with the 0.2 update. Users upgrading from earlier versions must reindex their data to ensure compatibility and to take full advantage of the new features and improvements introduced in pgvecto.rs 0.2.
Improvements
We've improved pgvecto.rs's reliability in this major release by adding more tests, improving error messages for easier troubleshooting, and refactoring the code for increased stability and smoother performance.