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);