At a glance
| Product type | C++/Python library, not a database or server |
| Vector index types | Flat, IVF, PQ, scalar quantizer, LSH, HNSW, NSG and combinations |
| Hybrid search | Not provided: no text search |
| Metadata filtering | ID-based selection (IDSelector) only; metadata must live elsewhere |
| Embedding integration | None: you supply the vectors |
| Scaling and multitenancy | In-process; GPU support; sharding and tenancy are up to your application |
| Deployment (managed or self-hosted) | Embedded in your application; no managed service |
| Licensing and pricing model | MIT, free |
FAISS is the right tool when you want fast, fine-grained control over vector indexes inside your own code, for research, offline batch jobs or as the engine behind a service you build. It has no server, metadata store, access control or replication, so applications that need those should use a vector database or a database extension instead.
Overview
FAISS is a library for efficient similarity search and clustering of dense vectors, developed mainly by Meta's Fundamental AI Research group. It is written in C++ with complete Python and NumPy wrappers, and offers exact search, inverted-file (IVF) indexes, product and scalar quantization, binary indexes and graph methods such as HNSW and NSG. Precompiled Conda packages are published for CPU, GPU and NVIDIA cuVS builds; release 1.15.1 is the latest on GitHub.
FAISS stores vectors identified by integer IDs and returns nearest neighbours; it does not store documents or metadata, run as a server or handle replication. Applications usually keep metadata in a separate database and map IDs back to records. Other systems embed it as an index engine: OpenSearch, for example, uses Faiss as the default engine for its k-NN vector field.
Key features
- Exact search with flat indexes (IndexFlatL2, IndexFlatIP) for L2 and inner product
- Inverted-file indexes (IndexIVFFlat, IndexIVFPQ, IndexIVFScalarQuantizer) for large collections
- Compression with product quantization, scalar quantization, additive quantization and polysemous codes
- Graph-based indexes: HNSW (IndexHNSWFlat), NSG and NNdescent
- Optional GPU acceleration through CUDA or AMD ROCm, plus NVIDIA cuVS backends
- Search restricted to a subset of IDs with an IDSelector passed in SearchParameters
- Clustering of dense vectors in the same library
Integrations and ecosystem
Pros and cons
Pros
- Wide choice of index and compression methods with fine-grained parameters
- Optional GPU acceleration on NVIDIA and AMD hardware
- Permissive MIT licence and no service fees
- Used as an index engine inside other systems, so skills transfer
Cons
- Not a database: no persistence layer, metadata storage, access control or replication
- Filtering is by ID selectors only, so attribute filters need your own code
- Choosing and tuning index types needs vector search expertise
- Conda is the documented binary install path; other builds need CMake
Pricing
FAISS is free and open source under the MIT licence. There is no paid edition or managed service from Meta; your costs are the servers or GPUs that run your application.
Pricing checked on the vendor's official page on 7 November 2026. Prices change; confirm before buying.
Who it is best for
Machine learning engineers and researchers who need high-control vector indexes inside their own code, batch similarity jobs, or an engine for a custom retrieval service.
Typical use cases
- Offline deduplication and clustering of large embedding sets
- Nearest-neighbour search inside a custom recommendation or retrieval service
- Research and benchmarking of approximate nearest-neighbour methods
- GPU-accelerated similarity search over large batches of vectors
Who should look elsewhere
- Application teams that need a managed, queryable vector store with metadata filters and durability; consider pgvector or a vector database such as Qdrant or Milvus.
Verdict
FAISS is a mature, permissively licensed library that gives experts direct control over vector indexing on CPU or GPU. It is a building block rather than a product: teams that need storage, metadata, filters and operations should pick a vector database or extension built on similar techniques.
Frequently asked questions
Is FAISS a vector database?
No. FAISS is a C++ library with Python wrappers for similarity search and clustering. It keeps vectors by integer ID and has no server, metadata storage or replication, so you build those around it or use a vector database.
Does FAISS support GPUs?
Yes, optionally. The README says GPU support is provided through CUDA or AMD ROCm, and NVIDIA cuVS backends can be enabled; Conda packages faiss-gpu and faiss-gpu-cuvs are published.
What licence is FAISS under?
FAISS is MIT-licensed, so it can be used in commercial products at no cost.
Can FAISS filter search results?
Only by ID. You can pass an IDSelector in the search parameters to restrict a query to a subset of vector IDs; attribute-based filtering has to be built in your application.
Sources
- FAISS on GitHub (README)
- FAISS releases
- FAISS wiki: Faiss indexes
- FAISS wiki: search parameters for one query
- FAISS LICENSE
Checked November 2026.
Listed in: Vector Databases & AI Search.
How we research reviews and what star ratings mean: our editorial method.