Papers › Sparkly: A Simple yet Surprisingly Strong TF/IDF Blocker for Entity Matching
Sparkly: A Simple yet Surprisingly Strong TF/IDF Blocker for Entity Matching
Derek Paulsen, Yash Govind, AnHai Doan
Blocking is a major task in entity matching. Numerous blocking solutions have been developed, but as far as we can tell, blocking using the well-known tf/idf measure has received virtually no attention. Yet, when we experimented with tf/idf blocking using Lucene, we found it did quite well. So in this paper we examine tf/idf blocking in depth. We develop Sparkly, which uses Lucene to perform top-k tf/idf blocking in a distributed share-nothing fashion on a Spark cluster. We develop techniques to identify good attributes and tokenizers that can be used to block on, making Sparkly completely automatic. We perform extensive experiments showing that Sparkly outperforms 8 state-of-the-art blockers. Finally, we provide an in-depth analysis of Sparkly's performance, regarding both recall/output size and runtime. Our findings suggest that (a) tf/idf blocking needs more attention, (b) Sparkly forms a strong baseline that future blocking work should compare against, and (c) future blocking work should seriously consider top-k blocking, which helps improve recall, and a distributed share-nothing architecture, which helps improve scalability, predictability, and extensibility.
Code
Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.
Code Syntology ran Syntology
Not run by Syntology. Nothing on this page verifies that the listed code works.
Tasks
Results from the paper archive 2025-07-28
| Task | Dataset | Model | Metric | Value | Rank at snapshot | Leaderboard | Report |
|---|---|---|---|---|---|---|---|
| Blocking | Abt-Buy | Sparkly k=10 | Candidate Set Size | 10900 | #4 of 6 | Archive leaderboard | report |
| Blocking | Abt-Buy | Sparkly k=10 | Recall | 98.1 | #4 of 6 | Archive leaderboard | report |
| Blocking | Abt-Buy | Sparkly k=50 | Candidate Set Size | 54500 | #6 of 6 | Archive leaderboard | report |
| Blocking | Abt-Buy | Sparkly k=50 | Recall | 99.2 | #6 of 6 | Archive leaderboard | report |
| Blocking | Amazon-Google | Sparkly k=10 | Candidate Set Size | 33300 | #2 of 6 | Archive leaderboard | report |
| Blocking | Amazon-Google | Sparkly k=10 | Recall | 96.8 | #2 of 6 | Archive leaderboard | report |
| Blocking | Amazon-Google | Sparkly k=50 | Candidate Set Size | 165900 | #6 of 6 | Archive leaderboard | report |
| Blocking | Amazon-Google | Sparkly k=50 | Recall | 99.2 | #6 of 6 | Archive leaderboard | report |
Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.
Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections