Scalable Vector Search in Postgres
Scalable Vector Search in Postgres
Scalable Vector Search in Postgres
PGVecto.rs is a Postgres extension that enables scalable vector search, allowing you to build powerful similarity-based applications on top of your Postgres database.
PGVecto.rs is a Postgres extension that enables scalable vector search, allowing you to build powerful similarity-based applications on top of your Postgres database.
PGVecto.rs is a Postgres extension that enables scalable vector search, allowing you to build powerful similarity-based applications on top of your Postgres database.
-- create table with a vector column
CREATE TABLE items (
id bigserial PRIMARY KEY,
embedding vector(3) NOT NULL -- 3 dimensions
);
-- insert values
INSERT INTO items (embedding)
VALUES ('[1,2,3]'), ('[4,5,6]');
-- create index
CREATE INDEX ON items USING vectors (embedding vector_l2_ops);
-- query the similar embeddings
SELECT * FROM items ORDER BY embedding <-> '[3,2,1]' LIMIT 5
Product Features
Revolutionize Vector Search, not Database.
Revolutionize Vector Search, not Database.
Better Filtering
Apply any filter conditions and join with other tables, achieving high recall and low latency, a distinctive edge over other vector databases.
Better Filtering
Apply any filter conditions and join with other tables, achieving high recall and low latency, a distinctive edge over other vector databases.
Better Filtering
Apply any filter conditions and join with other tables, achieving high recall and low latency, a distinctive edge over other vector databases.
Extended Vector Length
PGVecto.rs supports vector length up to 65535, suitable for the latest models.
Extended Vector Length
PGVecto.rs supports vector length up to 65535, suitable for the latest models.
Extended Vector Length
PGVecto.rs supports vector length up to 65535, suitable for the latest models.
Binary Vector Search
By utilizing adaptive retrieval techniques, binary vectors can maintain a high level of accuracy while significantly reducing memory usage by 30 times.
Binary Vector Search
By utilizing adaptive retrieval techniques, binary vectors can maintain a high level of accuracy while significantly reducing memory usage by 30 times.
Binary Vector Search
By utilizing adaptive retrieval techniques, binary vectors can maintain a high level of accuracy while significantly reducing memory usage by 30 times.
Hybrid Search
Leverage the full-text search functionality in PostgreSQL with pgvecto.rs to search text and vector data within a single query.
Hybrid Search
Leverage the full-text search functionality in PostgreSQL with pgvecto.rs to search text and vector data within a single query.
Hybrid Search
Leverage the full-text search functionality in PostgreSQL with pgvecto.rs to search text and vector data within a single query.
Faster, and Faster
4x faster than other postgres-based solutions.
Faster, and Faster
4x faster than other postgres-based solutions.
Faster, and Faster
4x faster than other postgres-based solutions.
Complete SQL Support
Full SQL support, enabling joins and filters without limitations or extra configuration.
Complete SQL Support
Full SQL support, enabling joins and filters without limitations or extra configuration.
Complete SQL Support
Full SQL support, enabling joins and filters without limitations or extra configuration.
USER TESTIMONIALS
Showcase with PGVecto.rs
Trusted by Many Open Source Projects
Showcase with PGVecto.rs
Trusted by Many Open Source Projects
• Immich.app Developer from GitHub
pgvector has limited support for filtering; you generally have to query for the nearest rows and apply filters on that result set. This means its recall can be abysmal, and it makes it very difficult to improve search in the ways we want. pgvecto.rs doesn't have these limitations and can indeed provide as many results as requested for a set of filters. This allows for much more powerful search in a seamless way, including the ability to have infinite scroll.
mag e/acc
• From Twitter
I was using @modal_labs for getting embeddings, and @qdrant_engine
for vectors, then realised I need lots of filtering and switched to pgvecto.rs
• Immich.app Developer from GitHub
pgvector has limited support for filtering; you generally have to query for the nearest rows and apply filters on that result set. This means its recall can be abysmal, and it makes it very difficult to improve search in the ways we want. pgvecto.rs doesn't have these limitations and can indeed provide as many results as requested for a set of filters. This allows for much more powerful search in a seamless way, including the ability to have infinite scroll.
mag e/acc
• From Twitter
I was using @modal_labs for getting embeddings, and @qdrant_engine
for vectors, then realised I need lots of filtering and switched to pgvecto.rs
• Immich.app Developer from GitHub
pgvector has limited support for filtering; you generally have to query for the nearest rows and apply filters on that result set. This means its recall can be abysmal, and it makes it very difficult to improve search in the ways we want. pgvecto.rs doesn't have these limitations and can indeed provide as many results as requested for a set of filters. This allows for much more powerful search in a seamless way, including the ability to have infinite scroll.
mag e/acc
• From Twitter
I was using @modal_labs for getting embeddings, and @qdrant_engine
for vectors, then realised I need lots of filtering and switched to pgvecto.rs