Added info on columns with different dimensions [skip ci]

This commit is contained in:
Andrew Kane
2023-11-03 16:02:00 -07:00
parent 8e507f3bf5
commit 154207bc17

View File

@@ -411,6 +411,20 @@ Yes, pgvector uses the write-ahead log (WAL), which allows for replication and p
Youll need to use [dimensionality reduction](https://en.wikipedia.org/wiki/Dimensionality_reduction) at the moment.
#### Can I store vectors with different dimensions in the same column?
You can use the `vector` type (instead of `vector(3)`). However, to index the column, youll need to use an [expression](https://www.postgresql.org/docs/current/indexes-expressional.html) to set the number of dimensions and a partial index to filter rows with different dimensions.
```sql
CREATE INDEX ON items USING hnsw ((embedding::vector(3)) vector_l2_ops) WHERE (model_id = 123);
```
and
```sql
SELECT * FROM items WHERE model_id = 123 ORDER BY embedding::vector(3) <-> '[3,1,2]' LIMIT 5;
```
## Troubleshooting
#### Why isnt a query using an index?