Fuzzy Match
Find records that mean the same thing despite typos, spelling, or word order. Cluster duplicates, or match against a reference list.
What it does
Matches records that mean the same thing even when they aren't identical: typos, abbreviations, punctuation, sounds-alike spellings, or a different word order. Find duplicates mode clusters near-duplicate rows in one table and tags each with a group id, a primary flag (the survivor), and a match score. Match to a list mode fuzzy-joins your data against a reference/master table, splitting rows into matched (with the best reference row attached) and unmatched.
Inputs and outputs
| Inputs | Dedupe mode: one input. Match mode: Input and Reference. |
| Outputs | Dedupe mode: one output. Match mode: Matched and Unmatched. |
When to use it
- Deduplicate a messy customer, vendor, or product list
- Match an incoming file against a clean master list
- Reconcile records that don't share an exact key
Examples
Cluster duplicates
Find duplicates · name (Typos & spelling) · 85%
Jon Smith, John Smith, J. Smith land in one group.
Sounds-alike names
name (Sounds-alike) · 90%
Catherine and Kathryn match; Smith and Smyth match.
Accents don't split a name
last_name (Exact) · 100%
García, GARCIA and Garcia land in one group; so do Müller and Muller, Strauß and Strauss.
Ignore word order
name (Word order / extra words)
'John A. Smith' matches 'Smith, John'.
Match to a master list
Match to a list · company (Typos & spelling) · 80%
Each input row gets its best reference match, or lands in unmatched.
Tips
- Add several fields (name + city + email) and give the important ones more weight; the scores combine into one.
- Higher threshold = stricter. Start around 80–85% and adjust from the results.
- Find duplicates gives you group_id, is_primary and match_score in one step, with no extra grouping node needed. Keep only the primaries with a Unique or Filter downstream.
- On large tables, turn on a match key so only records sharing a coarse key (e.g. first 3 letters of a name, or a sounds-alike code) are compared: a big speed-up.
- Every method ignores accents, so é matches e and the German sharp s (ß) matches ss, and Ignore case works for every alphabet (É and é, Ü and ü). To keep accents apart, use a node that matches exactly, such as Join.
- Sounds-alike is built for names in the Latin alphabet. A value with no Latin letters, such as a name written in Cyrillic or Chinese, has no sound code, so it never matches on that field; the run says how many there were in Messages. Use Typos & spelling for those values.