lithammer/fuzzysearch
lithammer/fuzzysearch has 1,322 GitHub stars and 71 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-08 06:43 UTC. Last push 2026-11-01.
:pig: Tiny and fast fuzzy search in Go
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalFuzzy Search
Inspired by bevacqua/fuzzysearch, a fuzzy matching library written in JavaScript. But contains some extras like ranking using Levenshtein distance and finding matches in a list of words.
Fuzzy searching allows for flexibly matching a string with partial input, useful for filtering data very quickly based on lightweight user input.
The current implementation uses the algorithm suggested by Mr. Aleph, a russian compiler engineer working at V8.
Install
go get github.com/lithammer/fuzzysearch/fuzzy
Usage
package main
import "github.com/lithammer/fuzzysearch/fuzzy"
func main() {
fuzzy.Match("twl", "cartwheel") // true
fuzzy.Match("cart", "cartwheel") // true
fuzzy.Match("cw", "cartwheel") // true
fuzzy.Match("ee", "cartwheel") // true
fuzzy.Match("art", "cartwheel") // true
fuzzy.Match("eeel", "cartwheel") // false
fuzzy.Match("dog", "cartwheel") // false
fuzzy.Match("kitten", "sitting") // false
fuzzy.RankMatch("kitten", "sitting") // -1
fuzzy.RankMatch("cart", "cartwheel") // 5
words := []string{"cartwheel", "foobar", "wheel", "baz"}
fuzzy.Find("whl", words) // [cartwheel wheel]
fuzzy.RankFind("whl", words) // [{whl cartwheel 6 0} {whl wheel 2 2}]
// Unicode normalized matching.
fuzzy.MatchNormalized("cartwheel", "cartwhéél") // true
// Case insensitive matching.
fuzzy.MatchFold("ArTeeL", "cartwheel") // true
}
You can sort the result of a fuzzy.RankFind() call using the sort
package in the standard library:
matches := fuzzy.RankFind("whl", words) // [{whl cartwheel 6 0} {whl wheel 2 2}]
sort.Sort(matches) // [{whl wheel 2 2} {whl cartwheel 6 0}]
See the fuzzy package documentation for more examples.
License
MIT
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,062 starspublic-apis/public-apis
A collective list of free APIs
497,303 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
443,536 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,214 stars