A few days ago somebody brought up an old blog post about Lucene’s fuzzy search. In this blog post Michael McCandless describes how they built Levenshtein automata based on the paper Fast String Correction with Levenshtein-Automata. This proved quite difficult: At first he built a simple prototype, explicitly unioning the separate DFAs that allow for up to N insertions, deletions and substitutions