Skip to content
String metrics and phonetic algorithms for Elixir (e.g. Dice/Sorensen, Hamming, Jaccard, Jaro, Jaro-Winkler, Levenshtein, Metaphone, N-Gram, NYSIIS, Overlap, Ratcliff/Obershelp, Refined NYSIIS, Refined Soundex, Soundex, Weighted Levenshtein)
Branch: master
Clone or download
Jason Legler
Jason Legler adding docs
Latest commit c2b9e2b Jan 9, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Initial Commit Oct 10, 2014
doc adding docs Jan 9, 2019
LICENSE.txt Fix documentation link to point to API Reference head Feb 14, 2018
mix.exs adding docs Jan 9, 2019
mix.lock Fixed Elixir 1.7 deprecations; mix format on the whole project; updat… Jan 9, 2019


Fuzzy string matching algorithm implementations

TheFuzz is a collection of metrics and phonetic (fuzzy string matching) algorithms for Elixir. It is based entirely on the rockymadden stringmetric library written by Rocky Madden for Scala. There will eventually be Elixir implementations of all of the string metric and phonetic algorithms implemented in his library. The library provides facilities to perform approximate string matching, measurement of string similarity/distance, indexing by word pronunciation, and sounds-like comparisons. The best way to see usage is to check out the tests and the documentation.

The following algorithms are currently implemented.

  1. DiceSorensenMetric
  2. HammingDistance
  3. JaccardSimilarityMetric
  4. JaroMetric
  5. JaroWinklerMetric
  6. LevenshteinDistance
  7. NGramSimilarityMetric
  8. OverlapMetric
  9. TanimotoCoefficientMetric
  10. TverskyIndexMetric
  11. WeightedLevenshteinDistance
  12. MetaphoneAlgorithm

I implemented these ones first because I needed them for another project. I will be adding more as time progresses. If you need one of them for a project, and I haven't implemented it yet, please let me know so that I can give it a higher priority.

You can’t perform that action at this time.