Fuzzy Name Matching in Postgres

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • usaddress

    :us: a python library for parsing unstructured United States address strings into address components

  • For address parsing, I've had good luck with this package: https://github.com/datamade/usaddress

  • dmetaphone

    Double Metaphone for PostgreSQL full text search

  • you can use double metaphone with postgres' text search facility directly: https://github.com/jkominek/dmetaphone

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • SymSpell

    SymSpell: 1 million times faster spelling correction & fuzzy search through Symmetric Delete spelling correction algorithm

  • I'm glad to see these built-in to Postgres, as these are the basics of fuzzy string matching.

    A quantum leap would be to integrate an implementation of the symmetric delete algorithm, such as https://github.com/wolfgarbe/SymSpell

    Soundex and Phonex can yield too many false negatives outside of phonetically English names. Levenshtein/Jaro-Winkler aren't indexable solutions themselves, so they require N^2 comparisons. SymSpell conceptually combines these two into an indexed string-distance solution. It has the usual index issue of being designed for many reads, few writes.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts