Vector Search / Vector DB

Inverted Index

Partition vectors into smaller groups using a clustering algorithm and then build an inverted index that maps cluster centroids to records

  • Preprocess / quantize vectors to reduce dimensionality.
  • Some implementations support incremental updates.
  • Examples: IVFFlat, pg Vector

To find a match, use same clustering algorithm to map into a group, then scan that group’s vectors.
Also check nearby groups to improve accuracy. image

Graph

  • HNSW
  • DiskANN

To find a match for a given vector, enter the graph and then greedily choose the next edge that moves closer to that vector.