Releases: andrewjsaid/levenshtypo
Releases · andrewjsaid/levenshtypo
v1.8.0
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
Features
- Introduced
LevenshtrieSet<T>
where each key can be associated with multiple entries but has set semantics. Can be thought of asDictionary<string, HashSet<T>>
. This enables much faster indexing performance thanLevenshtrieMultiMap
.
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 byLevenshtrieSet<T>
. - Removed
string
-based overloads inLevenshtrie
whereReadOnlySpan<char>
overloads existed.
v1.6.0
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
andEnumerateSearchByPrefix
now returnLevenshtrieSearchResult<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
Features
- Allow searching by prefix (
SearchByPrefix
andEnumerateSearchByPrefix
) - Implement MultiMap support (
LevenshtrieMultiMap
)
Full Changelog: v1.4.0...v1.5.0
v1.4.0
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
Features
- Search now returns the distance alongside the results
- Add new
EnumerateSearch
method which lazily evaluates the search via anIEnumerator
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
Features
- Support entire Unicode range
Improvements
- Speed up Levenshtrie construction
Full Changelog: v1.1.0...v1.2.0
v1.1.0
Implement Restricted Edit Distance i.e. support Transposition as a primitive edit operation.
v1.0.0
Initial Release