HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
facebookresearch
faiss
C++2017–2026
facebookresearch / faiss

faiss

A library for efficient similarity search and clustering of dense vectors.

45Distinct people
53Mentions
1Explicit recommenders
41.6KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A library for efficient similarity search and clustering of dense vectors.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

This tutorial is very complex. Here's how to get free semantic search with much less complexity: 1. Install sentence-transformers [1] 2. Initialize the MiniLM model - `model =…

vikp used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 8:03:49 PM UTC.

E-means: Outperforming k-means in one-tenth the epochs direct repository linkDebated

The author defends e-means as a superior, drop-in replacement for Lloyd's algorithm that uses scaling laws to automatically tune hyperparameters and escape local minima faster. Critics argue the method relies on known techniques like exponential moving averages and mini-batches without sufficient novelty or rigorous comparison against well-tuned baselines like scikit-learn's implementation.

81 readable replies · Supporting reply 1 · Supporting reply 2 · Supporting reply 3 · Supporting reply 4

Mentions over time

HN mentions by year53 dated mentions

Observed mentions: 2017-03-02 20:35:13 UTC to 2026-04-10 23:12:49 UTC.

051015202017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 8 mentions; 1 submissions, 7 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 20 mentions; 1 submissions, 19 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 8 mentions; 1 submissions, 7 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 2 submissions, 0 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC211
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC303
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC505
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC101
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC817
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC303
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC20119
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC817
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC220

What Hacker News says

3 sources
> After the faces are located, they’re matched against a set of candidates (which I would guess is an enumeration if all your Nth order friends [who don’t opt out of this], to reduce computational complexity. Face recognition is usually done by first transforming the face into vector space and than looking for the closest vector from known, e.g. openface[1] (which is based on google 2015 paper "FaceNet: A Unified Embedding for Face Recognition and Clustering"). Facebook itself opensourced[2] a library for efficient search of nearest neighbors in such spaces. It doesn't seem likely that generating set of Nth order friends (which grow very quickly with N) would be better than just having a global set or a split of global set by some characteristics (e.g. gender, race). [1] https://cmusatyalab.github.io/openface/ [2] https://github.com/faceb
Read the rest
In Facebook turned on face recognition silently
Various approaches based on LSH (locality sensitive hashing) and random projections. But "the best" really depends on your data profile, as the generic problem formulation, for completely generic vectors, is too… generic. See also the curse of dimensionality [0]. In practical terms, if you're looking for an actual implementation to use, here's a benchmark of some state-of-the-art implementations for high-dimensional vector search: http://radimrehurek.com/2013/12/performance-shootout-of-near... and also the updated https://github.com/erikbern/ann-benchmarks. In particular, for something good AND open source: - Leonid Boytsov's NMSLIB [1] - Erik Bernhardsson's Annoy [2] - Facebook's FAISS [3] For a commercial engine focused more on practical use (index management, transactions, versioning, support), see ScaleText [4] (disclaimer: our produc
Read the rest
In Using k-d trees to efficiently calculate nearest neighbors in 3D vector space
> During the inference time, we first represent user input as a vector using query encoder; then iterate over all available products and compute the metric between the query vector and each of them; finally, sort the results. Depending on the stock size, the metric computation part could take a while. Fortunately, this process can be easily parallelized. An alternative is to precompute a search index over the item vectors if the dataset of items is very large and you’re OK with running an approximate search to trade a bit of recall for performance, using algorithms provided by libraries like the following. Nmslib: https://github.com/searchivarius/nmslib Faiss (Facebook): https://github.com/facebookresearch/faiss Annoy (Spotify): https://github.com/spotify/annoy
In Building Cross-Lingual End-to-End Product Search with Tensorflow

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.