VectorChord 1.1.0 Release Notes
Features
VectorChord now provides rabitq8 and rabitq4 types. They are RaBitQ-quantized vectors, internally stored as uint8[] or uint4[] instead of float32[] or float16[], costing less storage. Like other vector types, you can create indexes for them.
CREATE TABLE items (id bigserial PRIMARY KEY, embedding rabitq8(3));
CREATE INDEX ON items USING vchordrq (embedding rabitq8_l2_ops);
INSERT INTO items (embedding) VALUES (quantize_to_rabitq8('[0,0,0]'::vector));
INSERT INTO items (embedding) VALUES (quantize_to_rabitq8('[1,1,1]'::vector));
INSERT INTO items (embedding) VALUES (quantize_to_rabitq8('[2,2,2]'::vector));
--- ...
SELECT id FROM items ORDER BY embedding <-> quantize_to_rabitq8('[0.9,0.9,1.1]'::vector) LIMIT 100;See Quantization Types for docs.
Search parameters could be configured via index storage parameters since 1.1.0. Search parameters can be bound to the index, so they don't need to be specified in a session or transaction.
CREATE INDEX items_embedding_idx ON items USING vchordrq (embedding vector_l2_ops) WITH (options = $$
build.internal.lists = [1000]
$$, probes = '10');See Fallback Parameters for docs.
What's Changed
PostgreSQL 13 is now end-of-life and will no longer receive security and bug fixes. VectorChord drops PostgreSQL 13 support as of 1.1.0.
Full Changelog: 1.0.0...1.1.0