About this project

SimString

Find a name even when you don’t type it exactly right. Try a search, adjust the similarity, and see why each result matches.

Try or .

Search settings
Starting the search engine…

Matches

Results will appear when Ruby is ready.

    How it works

    SimString breaks strings into overlapping character groups called n-grams, then uses an inverted index to retrieve strings meeting your similarity threshold. Select a result to inspect its shared pieces. A score measures n-gram similarity, rather than the number of edits needed to fix a spelling.

    This runs my Ruby SimString library in your browser using WebAssembly, with search work on a separate thread. The company names come from the project’s original sample list and may include old names.

    Implementation and source

    The website copy includes fixes for the Dice overlap cutoff, single-overlap matches, and floating-point threshold boundaries. You can inspect the unmodified library and browser adapter, covered by the MIT license. Ruby’s browser runtime has its own license notices. Read the project write-up.