Data structure and relevant algorithms for extremely fast prefix/fuzzy string searching.
Create a Trie with:
t:=trie.New()Add Keys with:
// Add can take in meta information which can be stored with the key.// i.e. you could store any information you would like to associate with// this particular key.t.Add("foobar", 1)Find a key with:
node, ok:=t.Find("foobar") meta:=node.Meta() // use meta with meta.(type)Remove Keys with:
t.Remove("foobar")Prefix search with:
t.PrefixSearch("foo")Fast test for valid prefix:
t.HasKeysWithPrefix("foo")Fuzzy search with:
t.FuzzySearch("fb")Fork this repo and run tests with:
go test Create a feature branch, write your tests and code and submit a pull request.
MIT