FAISS

1.13.2 · active · verified Sat Feb 28

Facebook AI Research Similarity Search. C++ library with Python bindings for efficient similarity search and clustering of dense vectors. Supports flat (exact), IVF (approximate), HNSW, PQ, and many other index types. CPU-only via PyPI (faiss-cpu); GPU support requires conda or building from source. Officially maintained by Meta/Facebook AI Research; PyPI wheel builds maintained by the community (faiss-wheels project). Import is always 'import faiss' regardless of which package is installed.

Warnings

Install

Imports

Quickstart

Vectors must be float32 numpy arrays. IndexFlatL2 is exact (no training). Approximate indices (IVF, HNSW) require index.train(vectors) before index.add().

import faiss
import numpy as np

dim = 128
n_vectors = 10000

# All vectors MUST be float32
vectors = np.random.random((n_vectors, dim)).astype('float32')

# Flat (exact) index
index = faiss.IndexFlatL2(dim)
print(index.is_trained)  # True (flat indices don't need training)

index.add(vectors)
print(index.ntotal)  # 10000

# Search: returns (distances, indices)
query = np.random.random((5, dim)).astype('float32')
D, I = index.search(query, k=10)
print(I.shape)  # (5, 10)

# Save/load index
faiss.write_index(index, 'my_index.faiss')
index2 = faiss.read_index('my_index.faiss')

view raw JSON →