- Release notes are available on GitHub.
- 2024-10-19:
strsim
fuzzy matching feature is now enabled on by default.
- 2024-05-04: Corrected a panic on UTF-8 searches.
- 2024-03-28: Removed
eddie
as the default string similarity crate, for now, due to a potentialpanic
.
-
2023-11-18: Fix for contextual fuzzy matching for
Live
interactive searches. In some casesLive
search would return global results without properly observing themaximum_search_results
setting. This has been fixed. This will improve performance and user experience. -
2023-11-18: New, optional
eddie
feature which is turned on by default. When this feature is enabled, this library will utilize Ilia Schelokov's eddie crate for faster UTF-8 string distance and string similarity calculations. -
2023-11-18: New, optional
gxhash
feature.ahash
is still the default hasher. When this feature is enabled, this library will utilize Olivier Giniaux's bleeding edge gxhash crate for fasterHashMap
andHashSet
operations.
- 2023-10-09: New, optional
ahash
feature which is turned on by default. When this feature is enabled, this library will utilize Tom Kaitchuck's ahash crate for fasterHashMap
andHashSet
operations rather than using the standard library's SipHash.
- 2023-09-01: Fixes compile failure for the experimental
select2
feature and when not usingfuzzy
feature.
-
The
simple
search index now internally employs Ed Page's kstring crate. -
The
dump_keyword
andprofile
function signatures were changed slightly, otherwise there's no expected impact to callers. -
Miscellaneous performance improvements.
- Any type that implements ToString (and consequently any type that implements Display) now gets the Indexable implementation for free.
- Improved contextual fuzzy matching.
-
Initial support for fuzzy searching. Fuzzy matching is applied to the last (partial) keyword in the search string for autocompletion and live search only.
Keywords at the start or in the middle of the user's search string will not be substituted. Indicium uses Danny Guo's strsim crate for string similarity calculations.
-
Breaking changes:
- Builder pattern is now passed owned values.
K
key type requiresHash
trait forfuzzy
string search feature.- New
SearchIndex
default settings.
-
Any dependent software should see if (or how) the updated defaults change search behaviour and tweak accordingly before adopting the 0.4.0 update.
- An experimental feature is now disabled by default to reduce resource consumption.
- Implemented
DerefMut
which gives access to the search index's underlyingBTreeMap
. Implemented theclear()
method for the seach index which is a convenience method for clearing the search index.
- Peformance improvements.
- Peformance improvements.
- Fix:
cargo test
failed. Sorry.
- Fix: issue with search indexes that do not use keyword splitting.
-
Autocomplete no longer offers previously used keywords as options.
-
Added
maximum_keys_per_keyword
getter method. -
Added
autocomplete_with
andsearch_with
methods which allow ad-hoc overrides of theAutocompleteType
/SearchType
and maximum results parameters.
- Added new search type
SearchType::Live
which is for "search as you type" interfaces. It is sort of a hybrid betweenautocomplete
andSearchType::And
. It will search using an (incomplete) string and return keys as the search results. Each resulting key can then be used to retrieve the full record from its collection to be rendered & displayed to the user.