Skip to content

Releases: andrewjsaid/levenshtypo

v1.8.0

26 Jun 10:53
Compare
Choose a tag to compare

Features

  • Include Suffix Length when searching by prefix.

Improvements

  • Added more options for executing automata without boxing.

Full Changelog: v1.7.0...v1.8.0

v1.7.0

27 May 20:25
Compare
Choose a tag to compare

Features

  • Introduced LevenshtrieSet<T> where each key can be associated with multiple entries but has set semantics. Can be thought of as Dictionary<string, HashSet<T>>. This enables much faster indexing performance than LevenshtrieMultiMap.

Improvements

  • Added the following APIs to Levenshtrie<T>: GetOrAddRef, ContainsKey

Breaking Changes

  • Deprecated LevenshtrieMultiMap<T> as it's functionality was not very clear and was better represented by LevenshtrieSet<T>.
  • Removed string-based overloads in Levenshtrie where ReadOnlySpan<char> overloads existed.

v1.6.0

10 May 14:38
Compare
Choose a tag to compare

Features

  • GetOrAdd is a new method which allows the consumer to obtain a direct reference to the store value, combining two method calls into one.

Improvements

  • XML Documentation has been added and improved throughout.

Breaking Changes

  • SearchByPrefix and EnumerateSearchByPrefix now return LevenshtrieSearchResult<T>. This was originally skipped to avoid calculating distance and thus improve search performance, however it does result in the onus on the consumer to store the original keys which could result in even worse performance than just calculating the distance here. Overall we trade-off some performance for better ergonomics.

Full Changelog: v1.5.0...v1.6.0

v1.5.0

01 May 21:55
Compare
Choose a tag to compare

Features

  • Allow searching by prefix (SearchByPrefix and EnumerateSearchByPrefix)
  • Implement MultiMap support (LevenshtrieMultiMap)

Full Changelog: v1.4.0...v1.5.0

v1.4.0

21 Aug 23:47
Compare
Choose a tag to compare

Features

  • Support limitless max edit distance in automatons
  • Allow mutations on Levenshtrie

Improvements

  • Faster Levenshtrie creation

Full Changelog: v1.3.0...v1.4.0

v1.3.0

12 Aug 22:09
Compare
Choose a tag to compare

Features

  • Search now returns the distance alongside the results
  • Add new EnumerateSearch method which lazily evaluates the search via an IEnumerator

Fixes

  • Avoid StackOverflow for very long words
  • Fix a case sensitivity bug which could result in TryGetValue failing to find the element

Improvements

  • Hardcode automata of distance up to 2 to minimize construction of such automata.
  • Various improvements to speed up execution of automata
  • Reduce memory footprint of Trie by compacting linked list of nodes into the secondary data store
  • Faster construction of Trie with less garbage

Full Changelog: v1.2.0...v1.3.0

v1.2.0

09 Aug 08:58
Compare
Choose a tag to compare

Features

  • Support entire Unicode range

Improvements

  • Speed up Levenshtrie construction

Full Changelog: v1.1.0...v1.2.0

v1.1.0

02 Aug 01:54
Compare
Choose a tag to compare

Implement Restricted Edit Distance i.e. support Transposition as a primitive edit operation.

v1.0.0

31 Jul 00:03
Compare
Choose a tag to compare

Initial Release