1. 34

We are thrilled to announce the release of pgvecto.rs, a powerful Postgres extension for vector similarity search written in Rust. Its HNSW algorithm is 20x faster than pgvector at 90% recall. But speed is just the start - pgvecto.rs is architected to add new algorithms easily. We’ve made it an extensible architecture for contributors to implement the new indexes quickly, and we look forward to the open-source community driving pgvecto.rs to new heights!

Here is the launch blog (and the benchmark): https://modelz.ai/blog/pgvecto-rs

    1. 4

      Ah this is great. I’ll migrate to this when it gets more stable.

      btw: the ml tag is for the ML-family of programming languages, like OCaml, StandardML, etc.

      1. 1

        Thanks! Will you need filter feature like https://qdrant.tech/articles/filtrable-hnsw/?

        1. 2

          Yes

          1. 2

            We have a blog to illustrate the filtering feature: https://modelz.ai/blog/pgvecto-rs-condition-filtering

          2. 1

            Gotcha. Are you using qdrant, pinecone, or something else?

            1. 1

              qdrant

              1. 2

                Hi, Qdrant DevRel employee here.

                Why do you intend to migrate from Qdrant? Is there a specific thing you are unhappy with? Or is there a missing feature that would persuade you to stay?

                1. 5

                  I’m loving the attention here :) — no, the thing I’d be hoping to gain is tighter integration with the rest of my data. For most of my data, I can use transactions, constraints, foreign keys, etc. But for Qdrant, it’s an external system where I have to build that stuff in myself. TL;DR the usual arguments against NoSQL or eventual consistent systems.

                  1. 1

                    Yeah, I think in some cases you just do not need a specialized vector db. We have a blog post for it: https://modelz.ai/blog/pgvector .

                    PS: I also like the qdrant project.

                  2. 1

                    That’s interesting! So I suppose the rest of your data is in Postgres? How would you like to integrate it further?

                    I’m asking because I’m currently prototyping a Postgres extension for Qdrant. It’s just a proof of concept at the moment, but I think it might be valuable to get to know the requirements actual users have.

          3. 1

            Hi, we already implemented the pre-filter in pgvecto.rs. We will release it and write a blog post for it. Will let you know!

            https://github.com/tensorchord/pgvecto.rs/commit/4ba136052cc9420528bc5fa463570113f0f181e5