The install stage succeeded, but usable Faiss bindings were not verified
The sandbox dependency installation stage succeeded in 38 seconds. The build and test steps then failed, and the test log showed a module named faiss without expected APIs such as IndexFlatL2. The supplied evidence does not identify the installation command or installed packages. It therefore does not establish that a Faiss package was successfully installed or that usable Faiss bindings were available.
For a Python search team, the immediate question is whether the intended index can load and run. Faiss is a C++ library with Python wrappers for similarity search and clustering of dense vectors. Its README describes vectors identified by integers, compared using L2 distance or dot products. Cosine similarity uses normalized vectors. You supply the vectors and decide what constitutes a useful match.
What happened when we ran it
The sandbox run used commit 1a9ddc6 on October 13, 2026. Its install stage succeeded in 38 seconds, recording 35 dependencies and 38 MB on disk. The build failed with exit code 1 after 3 seconds. No build diagnostic tail was supplied, so the evidence cannot identify a compiler problem, missing library or source defect.
Tests failed with exit code 1 after 4 seconds: 0 passed, 22 failed, and 74 collection/setup errors out of 96. The test-log tail names missing attributes including index_binary_factory, IndexFlatL2, check_openmp, get_compile_options and SIMDConfig. Those messages establish which APIs callers could not access. They do not explain why the attributes were absent or establish that a supported Faiss package would fail in the same way.
The recorded configuration had 3 CPUs, 8 GB RAM and the image label ghcr.io/astral-sh/uv:python3.12-bookworm. Actual interpreter and operating-system versions require the raw toolchain logs. Pip-audit recorded zero findings and zero packages; the supplied evidence does not establish dependency audit coverage. The repository scan found 11 CI workflow files and a tests directory, with no Dockerfile. This run measured no query speed, retrieval accuracy or GPU performance.
Conda is the documented supported route
The documented supported installation route is Conda. The installation guide lists stable package commands pinned to 1.15.1. That documented package version is separate from our tested checkout, commit 1a9ddc6; the supplied run does not establish which Faiss package version, if any, was installed.
The guide lists CPU binaries for Linux x86-64 and aarch64, macOS arm64, and Windows x86-64. Its GPU binary packages target Linux x86-64, with separate CUDA and cuVS combinations. Check the package matrix against the machine you intend to use.
Building from source uses CMake and requires C++20, OpenMP and BLAS. Python bindings add Python, NumPy and SWIG; GPU builds add their own toolchains. Our failed build does not establish that any particular requirement caused the failure. A useful next step is to follow the supported package instructions, confirm that the intended APIs are available, and verify that the chosen index accepts vectors and returns IDs. These are proposed checks, not additional tests performed for this review.
Use an exact-search reference to evaluate compression
Faiss includes exact-search baselines alongside approximate indexes. The README says some compressed representations do not retain the original vectors and generally produce less precise search. HNSW and NSG instead add indexing structures over raw vectors.
Choose against a representative query set and an exact-search reference. Compare which matches an approximate index misses, then record memory use and the cost of adding your data. This is an evaluation proposal. Our sandbox produced no recall, throughput or GPU measurements, so it provides no basis for recommending performance settings.
Issue 5756 reports filtering failures in specific wrappers
Issue 5756 reports excluded IDs returning through particular IndexRefine and IndexPreTransform parameter-wrapper combinations with IndexIDMap. The report says these wrappers drop a top-level selector, while a nested selector is applied to internal row numbers without the needed ID translation. The reporter describes both excluded IDs returning and allowed IDs being missed.
The issue was opened on October 19, 2026 and was open in the supplied extract. The reporter identifies Faiss 1.15.1 from a PyPI wheel and nightly Conda build v1.15.1-64-g56c96d5ef on macOS 26.5.1 arm64, and reports identical reproduction output on both builds. We did not reproduce the issue in our sandbox. It is an upstream report about those wrapper paths, not a finding that every Faiss index ignores selectors or that our checkout exhibits the bug.
Verify the exact index and parameter composition your application will use. If filtering represents permissions, independently enforce access to returned records. Plausible nearest neighbors alone do not establish correct filtering.
Compare alternatives by what your application needs to own
Qdrant is a vector database with an API and payload filtering. Its README describes a service for storing, searching and managing vectors with additional payloads. Compare it when those service responsibilities are part of your requirement.
hnswlib is a C++ HNSW library with Python bindings, insertions and updates. Its README makes it a relevant comparison when you have already chosen HNSW. Neither alternative was tested in this batch, so this review offers no measured setup or performance comparison.
The supplied repository metadata records a Faiss push on October 19, 2026, and issue 5756 was opened that day. These establish recent repository activity, not support response times or resolution of the reported issue. For an adoption decision, first establish working bindings through the supported route, then check search quality and filtered IDs against your own data.

