Robust record linkage blocking using suffix arrays and bloom filters

Timothy De Vries, Hui Ke, Sanjay Chawla, Peter Christen

Research output: Contribution to journalArticlepeer-review

29 Scopus citations


Record linkage is an important data integration task that has many practical uses for matching, merging and duplicate removal in large and diverse databases. However, quadratic scalability for the brute force approach of comparing all possible pairs of records necessitates the design of appropriate indexing or blocking techniques. The aim of these techniques is to cheaply remove candidate record pairs that are unlikely to match. We design and evaluate an eficient and highly scalable blocking approach based on sufix arrays. Our suffix grouping technique exploits the ordering used by the index to merge similar blocks at marginal extra cost, resulting in a much higher accuracy while retaining the high scalability of the base sufix array method. Efficiently grouping similar suffixes is carried out with the use of a sliding window technique. We carry out an in-depth analysis of our method and show results from experiments using real and synthetic data, which highlight the importance of using eficient indexing and blocking in real-world applications where datasets contain millions of records. We extend our disk-based methods with the capability to utilise main memory based storage to construct Bloom filters, which we have found to cause significant speedup by reducing the number of costly database queries by up to 70% in real data. We give practical implementation details and show how Bloom filters can be easily applied to Suffix Array based indexing.

Original languageEnglish
Article number9
JournalACM Transactions on Knowledge Discovery from Data
Issue number2
StatePublished - Feb 2011
Externally publishedYes


  • Blocking
  • Record linkage
  • Suffix arrays


Dive into the research topics of 'Robust record linkage blocking using suffix arrays and bloom filters'. Together they form a unique fingerprint.

Cite this