Fuzzy Name Search at Scale

PostgreSQL + Django strategies for fuzzy name matching How it works

54000000 records
Exact
Phonetic
Fuzzy

Enter a name to search

Try searching for "John Smith" or test typo tolerance with "Jonh Smyth"

Typo Tolerance

Try "Jonh Smyth" to see fuzzy matching

No Nickname Expansion

Names are searched as typed — "Bill" won't find "William" (edit distance 4)

Phonetic Matching

Soundex + Daitch-Mokotoff tokens