multi_language_search_engine library

Multi-Language Search Engine Flutter Plugin

A powerful Flutter plugin for implementing multi-language search functionality with support for Arabic and English text, fuzzy matching, and typo tolerance.

Features

  • Multi-language support (Arabic, English)
  • Fuzzy search with typo tolerance
  • Configurable similarity thresholds
  • Fast inverted index-based searching
  • Extensible architecture with interfaces

Basic Usage

import 'package:multi_language_search_engine/multi_language_search_engine.dart';

void main() {
  // Sample data
  final data = [
    {'id': 1, 'name': 'John Doe', 'description': 'Software Engineer'},
    {'id': 2, 'name': 'Jane Smith', 'description': 'Product Manager'},
  ];

  // Create search engine
  final searchEngine = createSearchEngine(
    data: data,
    languageCode: 'en',
  );

  // Search
  final results = searchEngine.search('software');
  print('Found ${results.length} results');
}

Classes

ArabicTextNormalizer
Arabic text normalizer implementation
ArabicTextTokenizer
Arabic text tokenizer implementation
ArabicVariationGenerator
Arabic variation generator implementation
DefaultSearchEngineFactory
Default factory implementation for creating search engine components
EnglishTextNormalizer
English text normalizer implementation
EnglishTextTokenizer
English text tokenizer implementation
EnglishVariationGenerator
English variation generator implementation
LevenshteinSimilarityCalculator
Levenshtein distance-based similarity calculator
MultiLanguageSearchEngine
Main plugin class for Multi-Language Search Engine
MultiLanguageSearchEngineImpl
Implementation of the multi-language search engine
MultiLanguageSearchEngineWeb
A web implementation of the MultiLanguageSearchEnginePlatform of the MultiLanguageSearchEngine plugin.
SearchEngine
Core search engine interface
SearchEngineFactory
Factory interface for creating language-specific components
SimilarityCalculator
Interface for similarity calculation between texts
TextNormalizer
Interface for text normalization functionality
TextTokenizer
Interface for tokenization functionality
VariationGenerator
Interface for generating text variations (typos, alternatives)

Functions

createSearchEngine({required List<Map<String, dynamic>> data, required String languageCode, SearchEngineFactory? factory}) SearchEngine
Creates a new instance of the multi-language search engine