DynamicSearchDetailedExtension<T> extension

Extension methods for smart search on any List

Provides easy-to-use search functionality with:

  • Automatic typo handling
  • Field weighting
  • Performance optimizations (isolates, caching)
  • Debug mode for development

Example:

final products = [Product(...), Product(...), ...];
final results = await products.smartSearchDynamicDetailedExtension<Product>(
  query: 'samsung galaxy',
  searchFieldsMap: {
    'name': ['nameAr', 'nameEn'],
    'category': ['category'],
  },
  fieldWeights: {'name': 3.0, 'category': 0.5},
  minScore: 0.4,
  limit: 10,
  debug: true,
  toJson: (p) => p.toJson(),
);
on

Methods

smartSearchDynamicDetailedExtension({required String query, required Map<String, List<String>> searchFieldsMap, required Map<String, dynamic> toJson(T), Map<String, double> fieldWeights = const {}, double minScore = 0.3, int limit = 10, bool useDamerauLevenshtein = true, bool useNGram = true, bool useIsolate = true, bool debug = false}) Future<List<T>>

Available on List<T>, provided by the DynamicSearchDetailedExtension extension

Performs smart search and returns matching items.
smartSearchExtension({required String query, required Map<String, List<String>> searchFieldsMap, required Map<String, dynamic> toJson(T), Map<String, double> fieldWeights = const {}, double minScore = 0.3, int limit = 10, bool useDamerauLevenshtein = true, bool useNGram = true, bool useIsolate = true, bool debug = false}) Future<List<T>>

Available on List<T>, provided by the DynamicSearchDetailedExtension extension

Convenience method that returns items directly.
smartSearchWithScores({required String query, required Map<String, List<String>> searchFieldsMap, required Map<String, dynamic> toJson(T), Map<String, double> fieldWeights = const {}, double minScore = 0.3, int limit = 10, bool useDamerauLevenshtein = true, bool useNGram = true, bool useIsolate = true, bool debug = false}) Future<List<SmartSearchResult<T>>>

Available on List<T>, provided by the DynamicSearchDetailedExtension extension

Performs search and returns results with scores.