<story><title>Show HN: A fast, hopefully accurate, fuzzy matching library written in Go</title><url>https://github.com/sahilm/fuzzy</url></story><parent_chain></parent_chain><comment><author>ericpauley</author><text>Made a PR to switch to runes for iteration. Runes are canonical in Go for unicode codepoints and also have no memory allocation, so they&amp;#x27;re wicked fast! More importantly they make the code compatible with unicode names.&lt;p&gt;You can also save on a ton of allocation if you reuse unleaked position slices on each match. It may also be nice to have a maxMatches argument that lets users set a limit, which would save on unnecessary allocation.</text></comment>
<story><title>Show HN: A fast, hopefully accurate, fuzzy matching library written in Go</title><url>https://github.com/sahilm/fuzzy</url></story><parent_chain></parent_chain><comment><author>glangdale</author><text>Have you tried out one of the standard &amp;#x27;distance&amp;#x27; metrics like Hamming distance or Levenstein distance? This would at least give you an objective measure of success. Whether that&amp;#x27;s something that actually &lt;i&gt;works&lt;/i&gt; for what you&amp;#x27;re trying to achieve is of course an open question, but both Hamming distance matching and Levenstein distance matching (the latter is harder but probably better for your purposes) are very well understood.</text></comment>