Nestor Milyaev
Nestor Milyaev

Reputation: 6595

PGVectorscale: failure to create index SQL Error [XX000]: ERROR: assertion failed: meta_page.get_num_dimensions_to_index() > 0 && <= 2000

I'm building a prototype ML system using Postgres-based extension vectorscale. It goes as follows:

I use a docker image timescale/timescaledb-ha:pg17

  1. I've created a table for embeddings:

    CREATE TABLE IF NOT EXISTS products.products_embedding ( embedding_id int8 NOT NULL PRIMARY KEY, "text" varchar(255), embedding vector(3072), metadata json );

  2. I've installed a vectorscale extension:

    CREATE EXTENSION IF NOT EXISTS vectorscale CASCADE;

That all works well and I can see the extension created:

SELECT * 
FROM pg_extension; - that lists my `vectorscale` extension

Now, as per documentation, when I attempt to creatre an index, as in:

CREATE INDEX argos_products_embedding_idx ON products.products_embedding 
USING diskann (embedding) WITH(num_neighbors=20);

, that blows in my face with the following error:

SQL Error [XX000]: ERROR: assertion failed: meta_page.get_num_dimensions_to_index() > 0 && meta_page.get_num_dimensions_to_index() <= 2000

I tried all sort of values for num_neighbours between 10 and 100, still getting the same error.

Any help please?

And the bigger question is: vector search on PgVector is rater slow, so I tried to speed that up using an index. Any better ideas on how to achive that than using what I'm doing?

Upvotes: 0

Views: 51

Answers (0)

Related Questions