cloudparts

Similarity search over embeddings

Finding the stored vectors closest to a query vector, usually embeddings of text or images, quickly enough to serve an application.

What it asks of a system

An embedding model turns a piece of text or an image into a vector of a few hundred to a few thousand numbers, and similar items end up close together. Finding the nearest neighbours exactly means comparing the query with every stored vector, which gives perfect recall but grows linearly with the data. Approximate indexes such as HNSW (a layered graph) or IVF (clusters) answer far faster by looking at only part of the data, and trade some recall for that speed.

To tell whether a system really handles it, measure recall and latency together on your own vectors, since either one alone is easy to improve. Check how much memory the index needs, how long it takes to build and whether it can take updates and deletes, and how it combines similarity with metadata filters: if filtering happens after the approximate search, a selective filter can return fewer results than you asked for. Hybrid search, which mixes vector similarity with keyword relevance, is a common extra requirement.

Good at it · 11

Compare side by side

Search indexes

Vector databases

ChromaOpen sourceHNSW on a single node and SPANN in the distributed version, with metadata, full-text and regex filters in the same query.An open-source vector database for AI apps that runs inside a Python or JavaScript process, as a single server, or as a distributed service on object storage.Deep LakeOpen sourceTQL runs vector similarity search over a dataset, and LangChain and LlamaIndex use Deep Lake as a vector store.Activeloop’s storage format and database for AI data: images, video, audio, text and embeddings stored as compressed columns on object storage, searchable by vector and streamable straight into PyTorch or TensorFlow.PineconeCommercialServerless indexes kept as slabs in object storage, with dense, sparse and metadata-filtered queries and a namespace per tenant.A managed, serverless vector database that keeps its indexes in object storage and serves dense-vector, sparse-vector and BM25 full-text search from the same index.turbopufferCommercialA centroid-based ANN index derived from SPFresh, kept in object storage and cached on NVMe, so large and many-tenant indexes stay cheap.A managed vector and full-text search engine that keeps every index in object storage and caches the active parts on NVMe and in memory, trading occasional slow cold queries for a much lower price per GB.VectorizeCommercialAn IVF index with product quantization scans only the nearest clusters, and metadata filters are applied before the top-K search.Cloudflare’s serverless vector database for Workers, which stores embeddings in R2-backed indexes and bills only for vector dimensions stored and queried.

Sources

Why each technology is listed comes from the sources on its own page.