7 modules pour vous permettre de créer des recherches complètes en javascript.
Vous souhaitez mettre votre solution en avant en haut de cet article ? Contactez-nous
J'ai du pour un projet en cours mettre en place une recherche, mais ne voulait pas faire appel au serveur, pour ne pas avoir une dépendance trop forte avec lui et donc pouvoir implémenter un mode hors-ligne, et j'ai du me rendre à une évidence : un moteur de recherche coté client ne s'improvise pas. et j'ai dû me rendre à une évidence : un moteur de recherche côté client ne s'improvise pas.
S'il est possible côté serveur de créer un champ de recherches simples et "vaguement" efficaces avec des jokers mysql et du fulltext index, les navigateurs n'ont pas de tels outils, et nous nous retrouvons à bricoller quelque chose d'absolument pas performant avec des regexp.
Heureusement, il existe de plusieurs ressources actives et de bonne qualité sur le sujet, que je vous propose de découvrir ici. Personnellement, j'ai faits le choix de Fuse, qui m'a semblé le plus rapide pour toutes les fonctionnalités que je lui demandais.
Fuse
Fuse est une bibliothèque Javascript qui vous permettra de faire du fuzzy search (rechercher plusieurs termes, accepter des fautes de frappe, …) en Javascript. Rapide, légère et simple à utiliser, c'est pour moi la library la plus souple de cette liste.
JS-search
JS-search est un outil dans le même style que Fuse.
Lunrjs
Lunr est une une version Javascript de Solr, en plus légère et malheureusement moins puissante.
Jets
Jets est une bibliothèque intéressante, car elle permet de filtrer le DOM de manière bien plus rapide que les filtres CSS via classes ou arguments.
Anysearch
Anysearch est un module de recherche disponible à tout moment. Pour l'appeler, entrer simplement du texte et il apparaîtra !
List.js
List.js est plus qu'une simple recherche, c'est avant tout un moyen de gérer des listes et des tableaux, de les filtrer et les organiser suivant différents paramètres.
Tipue
Tipue est une bibliothèque proposant une auto-complétion assez intéressante et complètement paramétrable.