fuzzy_search_engine 1.1.0
fuzzy_search_engine: ^1.1.0 copied to clipboard
Fast and lightweight search engine for Dart/Flutter with fuzzy search capabilities — lightweight and flexible.
Changelog #
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.1.0 - 2026-03-03 #
Added #
- Reusable
SearchIndexwithSearchEngine.buildIndex(...)for faster repeated queries. - New
SearchConfig.maxResultsoption to cap output size. - New
SearchConfig.fieldWeightsoption for per-field relevance tuning.
Changed #
- Search/fuzzy ranking moved from simple bucket priority to weighted score-based ordering.
- Fuzzy matching now uses bounded Damerau-Levenshtein with adaptive thresholds and early exit.
- Internal token/prefix candidate pruning added to reduce scan cost on larger datasets.
Tests #
- Added coverage for ranking behavior, result limiting, and indexed-vs-direct search parity.
1.0.1 - 2025-08-08 #
Added #
- Optional debug logging hook:
SearchConfig.debugLogger(works with FlutterdebugPrint). - Token-aware fuzzy matching (split by whitespace) with fallback to full-field check.
Changed #
- Optimized Levenshtein distance implementation to two-row DP (lower memory usage).
getItemByIdnow uses a simple linear scan instead of exception-drivenfirstWhere.
Fixed #
- Safe
toString()forSearchableItemwheniconis null/empty. - Correct
hashCodehandling for nullable fields inSearchableItem. - Correct library name:
library fuzzy_search_engine;. - README and example imports updated; examples show
debugLoggerusage.
1.0.0 - 2025-08-08 #
Added #
- Initial release of a fast and lightweight fuzzy search engine for Dart/Flutter.
- Four-level relevance: exact, starts-with, contains, fuzzy (for queries ≥ 3 chars).
- Configurable fields:
name,subtitle,searchData. - Zero dependencies (pure Dart), utility methods: sorting and
getItemById.