[{"data":1,"prerenderedAt":312},["ShallowReactive",2],{"project-16950040":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":40,"post_text":43,"what":44,"said":83,"maker_in_thread":195,"shape":204,"grid":208,"attempts":274,"same_week":275,"maker_shows":37,"maker_hidden":304,"reader_version":305,"card":306},"16950040","fuzzy","A fast, hopefully accurate, fuzzy matching library written in Go","title","Show HN: A fast, hopefully accurate, fuzzy matching library written in Go","https:\u002F\u002Fgithub.com\u002Fsahilm\u002Ffuzzy","github.com","sahilmuthoo",1524959641,2018,186,30,197,2155,10,"notable","languages","go library","library",[24,21,25,26],"fuzzy matching","fuzzy search","string matching","curious",0.143,{"positive":30,"neutral":31,"mixed":32,"critical":33},4,12,0,2,18,{"performance":36,"idea":38,"docs":39},{"positive":37,"critical":32},1,{"positive":33,"critical":32},{"positive":32,"critical":33},[41,32,32,42,32,32,42,42,42,32,42,41,32,42,41,42,32,32,41,42,42,42,42,37,32,37,32,32,32,42],5,3,null,{"problem":45,"audience":60,"pricing":43,"motivation":68,"time_to_build":43,"stack":75,"openness":81,"stage":82,"team_size":82},{"value":46,"source":47,"evidence":48},"Fuzzy matching of strings, such as file names, in Go code","inferred",[49,53,57],{"id":50,"by":51,"text":52},"16950571","glangdale","Have you tried out one of the standard 'distance' metrics like Hamming distance or Levenstein distance? This would at least give you an objective measure of success. Whether…",{"id":54,"by":55,"text":56},"16951696","purple-again","I made a similar tool and believe that if the author is interested in this route he may prefer the Jaro-Winkler algorithm as it is more highly tailored to names. Likely he rolled…",{"id":58,"by":11,"text":59},"16950668","fzf is a tool with a much larger feature set. fuzzy is just a humble library that you can add to your code.",{"value":61,"source":47,"evidence":62},"Go programmers building fuzzy search into their code",[63,64],{"id":58,"by":11,"text":59},{"id":65,"by":66,"text":67},"16952449","gkya","In this case this is a library and the information that it is written in Go is indeed useful: you can easily use it from Go code, not so much from other langauges.",{"value":69,"source":70,"evidence":71},"Came out of a project the maker started that never launched","maker",[72],{"id":73,"by":11,"text":74},"16950343","I've found it hard to write tests (though there are a few here - https:\u002F\u002Fgithub.com\u002Fsahilm\u002Ffuzzy\u002Fblob\u002Fmaster\u002Ffuzzy_test.go ). Match quality is often subjective. Tweaking one…",[76],{"value":77,"source":70,"evidence":78},"Go",[79],{"id":80},"post","open_source","unknown",{"praise":84,"objections":112,"requests":128,"questions":148,"alternatives":170},[85,101],{"value":86,"source":87,"evidence":88},"Useful fuzzy matching library and fun project","commenter",[89,93,97],{"id":90,"by":91,"text":92},"16951013","forrestthewoods","I approve of any and all fuzzy matchers. The world would be a better place if every search field was a fuzzy search field. Thanks for the shout out!",{"id":94,"by":95,"text":96},"16952187","anirudh83","cool stuff!!",{"id":98,"by":99,"text":100},"16950498","bacongobbler","That sounds to me like a great starting point for others to contribute code. :P Can't we all just be happy that someone decided to write a fun project and made it freely…",{"value":102,"source":87,"evidence":103},"Performance suggestions welcomed, runes and allocation tips",[104,108],{"id":105,"by":106,"text":107},"16950565","ericpauley","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're wicked fast! More importantly they…",{"id":109,"by":110,"text":111},"16950267","wincent","If you want to make it really fast you could steal some ideas from: https:\u002F\u002Fwincent.com\u002Fblog\u002Foptimization (tales of many years of optimizing a fuzzy search implementation).",[113,124],{"value":114,"source":87,"evidence":115},"No tests make it hard to trust in real projects",[116,120],{"id":117,"by":118,"text":119},"16950322","bitwize","Hopefully accurate? You should probably write some tests to ascertain that.",{"id":121,"by":122,"text":123},"16950387","yani","No tests makes it impossible to add it to real world projects IMO",{"value":125,"source":70,"evidence":126},"Match accuracy is subjective and hard to test",[127],{"id":73,"by":11,"text":74},[129,136,143],{"value":130,"source":87,"evidence":131},"Rank results by git commit frequency",[132],{"id":133,"by":134,"text":135},"16951926","jokh","Nice! How do you rank the file names when returning the search results? It'd be cool if you could rank them by factoring in git commit frequency for files, because more…",{"value":137,"source":87,"evidence":138},"Integrate into VSCode workspace symbol search",[139],{"id":140,"by":141,"text":142},"16952628","igammarays","Now if only this could be baked into VSCode for workspace-global symbol search. I would then finally ditch WebStorm.",{"value":144,"source":87,"evidence":145},"Use standard distance metrics like Levenshtein or Jaro-Winkler",[146,147],{"id":50,"by":51,"text":52},{"id":54,"by":55,"text":56},[149,156,163],{"value":150,"source":87,"evidence":151},"How does it compare with fzf?",[152],{"id":153,"by":154,"text":155},"16950624","_-david-_","How does this compare with fzf (https:\u002F\u002Fgithub.com\u002Fjunegunn\u002Ffzf)?",{"value":157,"source":87,"evidence":158},"How does it compare with fzy?",[159],{"id":160,"by":161,"text":162},"16951979","Rafert","The logical follow-up question would be; how does it compare to fzy? :) https:\u002F\u002Fgithub.com\u002Fjhawthorn\u002Ffzy",{"value":164,"source":87,"evidence":165},"Why do Go projects advertise they are written in Go?",[166],{"id":167,"by":168,"text":169},"16952159","tdurden","Why do projects written in Go always advertise they are written in Go?",[171,176,180,188],{"value":172,"source":87,"evidence":173},"fzf",[174,175],{"id":153,"by":154,"text":155},{"id":58,"by":11,"text":59},{"value":177,"source":87,"evidence":178},"fzy",[179],{"id":160,"by":161,"text":162},{"value":181,"source":87,"evidence":182},"Command-T",[183,184],{"id":109,"by":110,"text":111},{"id":185,"by":186,"text":187},"16951835","derwiki","I still use and recommend Command-T :-)",{"value":189,"source":87,"evidence":190},"fuzzyfinder (Python)",[191],{"id":192,"by":193,"text":194},"16952008","amjith","I did a similar library for Python (~3yrs ago). blog: http:\u002F\u002Fblog.amjith.com\u002Ffuzzyfinder-in-10-lines-of-python library: https:\u002F\u002Fgithub.com\u002Famjith\u002Ffuzzyfinder I haven't done any…",{"comments":41,"answered":33,"key":196},[197,200,203],{"id":198,"text":199},"16950592","\u002Fxpost from the PR :) Wow! mind = blown. Please let me digest this code. I will merge later today. I'm probably going to come back and ask a few questions. I wouldn't want to…",{"id":201,"text":202},"16950362","Thanks for writing command-T :) Let me pull up some embarrassing numbers of fuzzy matching on all of Chromium.",{"id":58,"text":59},{"commenters":205,"max_depth":30,"maker_replies":41,"first_comment_mins":206,"lifespan_hours":207},24,79,36,[209,211,213,216,218,220,222,224,225,227,228,229,231,232,234,236,240,244,246,249,250,253,256,257,260,262,263,266,268,271],[105,32,41,210,106,32],"project\u002Fpositive\u002Fperformance",[198,32,32,212,11,37],"maker\u002Fpositive\u002Fnone",[214,32,32,215,106,32],"16950747","other\u002Fneutral\u002Fperformance",[109,37,42,217,110,32],"project\u002Fneutral\u002Fperformance",[201,37,32,219,11,37],"maker\u002Fneutral\u002Fperformance",[185,37,32,221,186,32],"other\u002Fneutral\u002Fnone",[50,33,42,223,51,32],"project\u002Fneutral\u002Fidea",[54,33,42,223,55,32],[153,42,42,226,154,32],"project\u002Fneutral\u002Fnone",[58,42,32,226,11,37],[160,42,42,226,161,32],[90,30,41,230,91,32],"project\u002Fpositive\u002Fidea",[192,41,32,221,193,32],[133,233,42,223,134,32],6,[140,235,41,230,141,32],7,[237,238,42,223,239,32],"16951245",8,"arghwhat",[241,238,32,242,243,32],"16951296","commenter\u002Fneutral\u002Fnone","mseepgood",[245,238,32,242,239,32],"16957639",[94,247,41,248,95,32],9,"project\u002Fpositive\u002Fnone",[167,18,42,226,168,32],[251,18,42,226,252,32],"16952223","asdjlkadsjklads",[254,18,42,226,255,32],"16952263","virmundi",[65,18,42,226,66,32],[117,258,37,259,118,32],11,"project\u002Fcritical\u002Fdocs",[73,258,32,261,11,37],"maker\u002Fneutral\u002Fdocs",[121,258,37,259,122,32],[264,258,32,265,11,37],"16950407","commenter\u002Fneutral\u002Fdocs",[98,258,32,267,99,32],"commenter\u002Fpositive\u002Fnone",[269,258,32,221,270,32],"16950755","greglindahl",[272,258,42,223,273,32],"16950851","userbinator",[],[276,281,286,290,295,300],{"id":277,"name":278,"points":279,"category":280},"16959550","ReLaXed",344,"productivity",{"id":282,"name":283,"points":284,"category":285},"16958446","stocks",207,"finance_crypto",{"id":287,"name":288,"points":289,"category":285},"16958797","crapcoin",206,{"id":291,"name":292,"points":293,"category":294},"16962695","un0rick",199,"hardware",{"id":296,"name":297,"points":298,"category":299},"16948939","fdb-nbd",192,"infrastructure",{"id":301,"name":302,"points":303,"category":20},"16947038","SE Simulator",178,false,"v2",{"id":307,"name":5,"line":6,"ai":304,"cat":20,"year":13,"points":14,"comments":15,"rec":27,"s":308,"top":18,"kw":309,"maker":11,"domain":10,"tier":19,"attempts":32,"strip":310,"url":9,"mix":311,"praise":86,"objection":114,"sub":21},16950040,0.14,[24,21,25,26],"500300333035035300533331010003",[30,31,32,33],1794036565549]