fuse.js vs fuzzysort vs fuzzy-search vs fuzzysearch vs elasticlunr
Comparaison des packages npm "Recherche Floue et Indexation"
1 An
fuse.jsfuzzysortfuzzy-searchfuzzysearchelasticlunrPackages similaires:
Qu'est-ce que Recherche Floue et Indexation ?

Les bibliothèques de recherche floue et d'indexation en JavaScript aident les développeurs à implémenter des fonctionnalités de recherche dans leurs applications, permettant de trouver des résultats même lorsque les entrées de l'utilisateur sont inexactes ou contiennent des fautes de frappe. Ces bibliothèques utilisent des algorithmes sophistiqués pour comparer les chaînes de caractères et identifier les correspondances proches, améliorant ainsi l'expérience utilisateur lors de la recherche d'informations. elasticlunr est une bibliothèque d'indexation et de recherche légère qui permet de créer des index de documents dans le navigateur, tandis que fuse.js est une bibliothèque de recherche floue qui permet de trouver des correspondances approximatives dans des listes d'objets, en utilisant des poids pour affiner les résultats. fuzzy-search est une bibliothèque simple et légère qui effectue une recherche floue dans des tableaux de chaînes ou d'objets, tandis que fuzzysearch est une petite bibliothèque qui implémente une recherche floue rapide dans des chaînes de caractères. Enfin, fuzzysort est une bibliothèque de tri flou qui trie les résultats en fonction de leur proximité avec la chaîne de recherche, offrant une alternative rapide et efficace pour les recherches floues.

Tendance de téléchargements npm
Classement des GitHub Stars
Détail des statistiques
Package
Téléchargements
Stars
Taille
Issues
Publication
Licence
fuse.js3,924,16719,002456 kB14il y a 2 moisApache-2.0
fuzzysort401,5744,08845.6 kB9il y a 6 moisMIT
fuzzy-search160,225226-16il y a 5 ansISC
fuzzysearch107,7312,724-5il y a 10 ansMIT
elasticlunr27,5262,059-77il y a 9 ansMIT
Comparaison des fonctionnalités: fuse.js vs fuzzysort vs fuzzy-search vs fuzzysearch vs elasticlunr

Type de Recherche

  • fuse.js:

    fuse.js est conçu pour la recherche floue dans des listes d'objets. Il permet des correspondances approximatives basées sur les fautes de frappe, ce qui le rend idéal pour les recherches où la précision n'est pas garantie.

  • fuzzysort:

    fuzzysort effectue une recherche floue et trie les résultats en fonction de leur proximité avec la chaîne de recherche. Cela permet aux utilisateurs de voir les correspondances les plus pertinentes en premier, améliorant ainsi l'expérience de recherche.

  • fuzzy-search:

    fuzzy-search effectue une recherche floue simple dans des tableaux de chaînes ou d'objets. Elle trouve les correspondances approximatives sans nécessiter d'indexation préalable, ce qui la rend rapide et efficace pour les petits ensembles de données.

  • fuzzysearch:

    fuzzysearch implémente une recherche floue rapide dans des chaînes de caractères, se concentrant sur la correspondance de sous-chaînes avec des erreurs. Elle est rapide et efficace, mais ne fournit pas de fonctionnalités avancées comme le classement des résultats.

  • elasticlunr:

    elasticlunr prend en charge la recherche par mot-clé et la recherche floue, mais elle nécessite que les données soient indexées au préalable. Cela permet des recherches rapides et efficaces dans des ensembles de données statiques.

Indexation

  • fuse.js:

    fuse.js n'exige pas d'indexation préalable. Il recherche directement dans les données fournies, ce qui le rend flexible mais peut être moins performant pour les très grands ensembles de données.

  • fuzzysort:

    fuzzysort ne nécessite pas d'indexation. Elle recherche et trie les résultats en temps réel, ce qui la rend efficace pour les ensembles de données dynamiques.

  • fuzzy-search:

    fuzzy-search ne nécessite pas d'indexation. Elle recherche directement dans les tableaux fournis, ce qui la rend rapide et simple à utiliser.

  • fuzzysearch:

    fuzzysearch ne nécessite pas d'indexation. Elle recherche rapidement des correspondances floues dans les chaînes de caractères fournies.

  • elasticlunr:

    elasticlunr crée des index inversés pour les documents, ce qui permet des recherches rapides. L'indexation doit être effectuée avant la recherche, mais elle est efficace pour les ensembles de données statiques.

Performance

  • fuse.js:

    fuse.js peut devenir lent avec des ensembles de données très volumineux en raison de sa nature de recherche floue. Cependant, il est optimisé pour des recherches rapides dans des listes de taille moyenne.

  • fuzzysort:

    fuzzysort est rapide et efficace, surtout pour les ensembles de données où le tri des résultats est important. Elle utilise des algorithmes optimisés pour minimiser le temps de recherche.

  • fuzzy-search:

    fuzzy-search est performant pour les petites et moyennes listes. Elle peut ralentir avec des ensembles de données très volumineux, mais reste rapide grâce à son algorithme simple.

  • fuzzysearch:

    fuzzysearch est très rapide pour les recherches floues dans les chaînes de caractères. Elle est conçue pour être efficace et consomme peu de ressources.

  • elasticlunr:

    elasticlunr offre de bonnes performances pour les recherches dans des ensembles de données indexés. L'indexation peut prendre du temps, mais les recherches sont rapides une fois l'index créé.

Exemple de Code

  • fuse.js:

    Exemple de recherche avec fuse.js

    const Fuse = require('fuse.js');
    
    // Données à rechercher
    const data = [
      { id: 1, title: 'Bonjour', description: 'Ceci est un document.' },
      { id: 2, title: 'Monde', description: 'Ceci est un autre document.' },
    ];
    
    // Configurer Fuse.js
    const options = {
      keys: ['title', 'description'],
      threshold: 0.3,
    };
    const fuse = new Fuse(data, options);
    
    // Rechercher
    const result = fuse.search('Bonjour');
    console.log(result);
    
  • fuzzysort:

    Exemple de recherche avec fuzzysort

    const fuzzysort = require('fuzzysort');
    
    // Données à trier
    const items = ['Bonjour', 'Monde', 'Document', 'Fichier'];
    
    // Rechercher et trier
    const results = fuzzysort.go('Bnr', items);
    console.log(results);
    
  • fuzzy-search:

    Exemple de recherche avec fuzzy-search

    const fuzzySearch = require('fuzzy-search');
    
    // Données à rechercher
    const items = ['Bonjour', 'Monde', 'Document', 'Fichier'];
    
    // Rechercher des correspondances floues
    const results = fuzzySearch(items, 'Bnr');
    console.log(results);
    
  • fuzzysearch:

    Exemple de recherche avec fuzzysearch

    const fuzzysearch = require('fuzzysearch');
    
    // Chaînes à comparer
    const str1 = 'Bonjour';
    const str2 = 'Bnr';
    
    // Vérifier la correspondance floue
    const isMatch = fuzzysearch(str2, str1);
    console.log(isMatch);
    
  • elasticlunr:

    Exemple de recherche avec elasticlunr

    const elasticlunr = require('elasticlunr');
    
    // Créer un index
    const index = elasticlunr(function () {
      this.addField('title');
      this.addField('body');
      this.setRef('id');
    });
    
    // Ajouter des documents à l'index
    index.addDoc({ id: 1, title: 'Bonjour', body: 'Ceci est un document.' });
    index.addDoc({ id: 2, title: 'Monde', body: 'Ceci est un autre document.' });
    
    // Rechercher dans l'index
    const results = index.search('Bonjour');
    console.log(results);
    
Comment choisir: fuse.js vs fuzzysort vs fuzzy-search vs fuzzysearch vs elasticlunr
  • fuse.js:

    Choisissez fuse.js si vous avez besoin d'une recherche floue avancée dans des listes d'objets. Elle vous permet de spécifier des champs, des poids et des seuils de similarité, ce qui la rend très flexible pour les applications où la précision de la recherche est importante.

  • fuzzysort:

    Choisissez fuzzysort si vous avez besoin d'une bibliothèque qui trie les résultats en fonction de leur proximité avec la chaîne de recherche. Elle est rapide et efficace, ce qui la rend idéale pour les applications où le tri des résultats est aussi important que la recherche.

  • fuzzy-search:

    Choisissez fuzzy-search si vous avez besoin d'une bibliothèque simple et légère pour effectuer des recherches floues dans des tableaux de chaînes ou d'objets. Elle est facile à utiliser et n'a pas de dépendances, ce qui la rend parfaite pour les projets où la simplicité est primordiale.

  • fuzzysearch:

    Choisissez fuzzysearch si vous avez besoin d'une solution rapide et minimaliste pour effectuer des recherches floues dans des chaînes de caractères. Elle est particulièrement utile pour les applications qui nécessitent une recherche rapide avec un faible encombrement.

  • elasticlunr:

    Choisissez elasticlunr si vous avez besoin d'une solution d'indexation et de recherche légère qui fonctionne entièrement dans le navigateur. Elle est idéale pour les applications où vous devez rechercher dans un ensemble de données statiques sans dépendances côté serveur.