Vector indexes
Once your vector table starts to grow, you will likely want to add an index to speed up queries. Without indexes, you'll be performing a sequential scan which can be a resource-intensive operation when you have many records.
Choosing an index
Today pgvector
supports two types of indexes:
In general we recommend using HNSW because of its performance and robustness against changing data.
Distance operators
Indexes can be used to improve performance of nearest neighbor search using various distance measures. pgvector
includes 3 distance operators:
Operator | Description | Operator class |
---|---|---|
<-> | Euclidean distance | vector_l2_ops |
<#> | negative inner product | vector_ip_ops |
<=> | cosine distance | vector_cosine_ops |
Currently vectors with up to 2,000 dimensions can be indexed.
Resources
Read more about indexing on pgvector
's GitHub page.