Aire de jeu Fuse.js
Aire de jeu interactive pour tester et expérimenter avec la bibliothèque de recherche floue Fuse.js. Configurez toutes les options de recherche et voyez les résultats en temps réel.
Entrée
Sortie
| id | title | author | year | category |
|---|---|---|---|---|
| 1 | JavaScript: The Good Parts | Douglas Crockford | 2008 | Programming |
| 2 | Clean Code | Robert C. Martin | 2008 | Programming |
| 3 | The Pragmatic Programmer | Andrew Hunt | 1999 | Programming |
| 4 | Design Patterns | Gang of Four | 1994 | Software Engineering |
| 5 | Introduction to Algorithms | Thomas H. Cormen | 1990 | Computer Science |
| 6 | Code Complete | Steve McConnell | 1993 | Programming |
| 7 | Refactoring | Martin Fowler | 1999 | Software Engineering |
| 8 | The Mythical Man-Month | Frederick Brooks | 1975 | Project Management |
| 9 | Structure and Interpretation of Computer Programs | Harold Abelson | 1984 | Computer Science |
| 10 | Working Effectively with Legacy Code | Michael Feathers | 2004 | Programming |
Documentation
Qu'est-ce que la recherche floue ?
La recherche floue est une technique de recherche qui trouve des correspondances même lorsque la requête de recherche ne correspond pas exactement au texte. Contrairement à la recherche exacte où "pomme" ne correspond qu'à "pomme", la recherche floue peut trouver "pome" (avec une faute de frappe), "Pomme" (casse différente) ou même "pommes" (forme plurielle). Cela fonctionne en calculant la similarité entre deux chaînes de caractères, en tenant compte des fautes de frappe, des erreurs d'orthographe, des différences de casse et des variations mineures. C'est essentiel pour créer des expériences de recherche conviviales où les utilisateurs n'ont pas besoin de taper des requêtes parfaitement précises pour trouver ce qu'ils recherchent.
Comment fonctionne Fuse.js ?
Fuse.js est une bibliothèque JavaScript qui implémente la recherche floue en utilisant un algorithme de correspondance approximative de chaînes. Elle fonctionne en :
- Indexation : Création d'une structure de données efficace à partir de vos données consultables
- Notation : Calcul d'un score de similarité entre la requête de recherche et chaque élément (0.0 = correspondance parfaite, 1.0 = aucune correspondance)
- Filtrage : Renvoi des résultats qui répondent aux critères de seuil
- Classement : Tri des résultats par pertinence en fonction de leurs scores
La bibliothèque utilise des options configurables comme le seuil (à quel point la recherche doit être floue), l'emplacement (où s'attendre à des correspondances) et la distance (jusqu'où chercher depuis l'emplacement attendu), offrant aux développeurs un contrôle précis sur le comportement de la recherche.
Description de l'outil
Le Fuse.js Playground est un environnement de test interactif pour la bibliothèque de recherche floue Fuse.js. Il permet aux développeurs d'expérimenter avec toutes les options de configuration de recherche disponibles et de voir les résultats en temps réel sur des données personnalisées ou d'exemple. Vous pouvez configurer les clés de recherche avec des poids personnalisés, ajuster les options de base comme la sensibilité à la casse et l'inclusion du score, et affiner les paramètres avancés comme le seuil, l'emplacement et la distance. L'outil fournit un retour visuel immédiat montrant comment les modifications de configuration affectent les résultats de recherche, ce qui le rend idéal pour prototyper la fonctionnalité de recherche avant l'implémentation.
Fonctionnalités
- Saisie de données personnalisées : Chargez vos propres données JSON pour tester le comportement de recherche sur des ensembles de données réels
- Clés de recherche configurables : Définissez les champs à rechercher avec des priorités de poids personnalisées
- Résultats en temps réel : Obtenez un retour instantané lorsque vous modifiez les requêtes ou les options de recherche
- Options de base : Contrôlez la sensibilité à la casse, la gestion des signes diacritiques, le tri et l'affichage du score
- Réglage avancé : Ajustez le seuil, l'emplacement, la distance, la normalisation des champs, et plus encore
- Syntaxe de recherche étendue : Testez des modèles de requête avancés comme la recherche de préfixe (^), la correspondance exacte (!), et plus
- Visualisation des résultats : Affichez les résultats de recherche dans un tableau triable avec des scores de correspondance optionnels
- Jeu de données d'exemple : Collection de livres préchargée pour des tests et expérimentations immédiats
Exemples
Recherche de base :
- Requête : "fantasy" → Trouve tous les livres de la catégorie fantasy
- Requête : "tolkien" → Trouve les livres de l'auteur J.R.R. Tolkien
- Requête : "seigneur anneaux" → Trouve "Le Seigneur des Anneaux" malgré les mots manquants
Correspondance floue :
- Requête : "hary poter" (fautes de frappe) → Trouve quand même "Harry Potter"
- Requête : "1984" → Trouve le livre de George Orwell
- Requête : "scifi" → Correspond à la catégorie "Science Fiction"
Recherche étendue (lorsqu'elle est activée) :
- Requête : "^Le" → Trouve les titres commençant par "Le"
- Requête : "!Fantasy" → Correspondance exacte pour la catégorie "Fantasy"
- Requête : "'Dune" → Trouve les éléments incluant le mot "Dune"
Options de configuration
Clés de recherche :
- Définissez les champs à rechercher (par ex., titre, auteur, catégorie)
- Attribuez des poids pour prioriser certains champs (poids plus élevé = plus important)
Options de base :
- Sensible à la casse : Correspond exactement à la casse des lettres
- Inclure le score : Afficher les scores de pertinence (0.0 = parfait, 1.0 = mauvais)
- Ignorer les diacritiques : Traiter les caractères accentués comme leur forme de base (é = e)
- Trier les résultats : Classer les résultats par score de pertinence
- Trouver toutes les correspondances : Continuer la recherche après avoir trouvé la première correspondance
Options avancées :
- Longueur min. de correspondance : Nombre minimum de caractères requis pour une correspondance (par défaut : 1)
- Emplacement : Position attendue des correspondances dans le texte (par défaut : 0 = début)
- Seuil : À quel point la recherche doit être floue, de 0.0 (exact) à 1.0 (très flou)
- Distance : Distance maximale depuis l'emplacement attendu pour rechercher
- Utiliser la recherche étendue : Activer la syntaxe de requête avancée (^, !, ', etc.)
- Ignorer l'emplacement : Ne pas considérer la position lors de la correspondance
- Ignorer la norme du champ : Ne pas tenir compte de la longueur du champ dans la notation
- Poids de la norme du champ : Impact de la longueur du champ sur la notation
Cas d'utilisation
- Test d'implémentation de recherche : Prototypage et validation de la fonctionnalité de recherche avant le codage
- Configuration d'API : Détermination des paramètres optimaux de Fuse.js pour votre application
- Analyse du comportement de recherche : Comprendre comment différentes options affectent la qualité des résultats
- Démonstrations client : Montrer aux parties prenantes comment la recherche se comportera avec des données réelles
- Apprentissage de Fuse.js : Expérimentation pratique pour comprendre les capacités de la bibliothèque
- Test de structure de données : Vérifier que votre structure de données JSON fonctionne avec la recherche floue
- Ajustement de la qualité de recherche : Affiner le seuil et d'autres paramètres pour de meilleurs résultats