Fuse.js Spielplatz
Interaktiver Spielplatz zum Testen und Experimentieren mit der Fuse.js Fuzzy-Such-Bibliothek. Konfigurieren Sie alle Suchoptionen und sehen Sie Ergebnisse in Echtzeit.
Eingabe
Ausgabe
| 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 |
Readme
Was ist Fuzzy-Suche?
Fuzzy-Suche ist eine Suchtechnik, die Übereinstimmungen findet, auch wenn die Suchanfrage nicht genau mit dem Text übereinstimmt. Im Gegensatz zur exakten Suche, bei der "Apfel" nur "Apfel" findet, kann die Fuzzy-Suche "Apfl" (mit Tippfehler), "APFEL" (andere Groß-/Kleinschreibung) oder sogar "Äpfel" (Pluralform) finden. Dies funktioniert, indem die Ähnlichkeit zweier Zeichenfolgen berechnet wird, wobei Tippfehler, Rechtschreibfehler, unterschiedliche Groß-/Kleinschreibung und geringfügige Variationen berücksichtigt werden. Dies ist wichtig für die Erstellung benutzerfreundlicher Sucherlebnisse, bei denen Benutzer keine perfekt genauen Anfragen eingeben müssen, um das zu finden, wonach sie suchen.
Wie funktioniert Fuse.js?
Fuse.js ist eine JavaScript-Bibliothek, die Fuzzy-Suche mithilfe eines Algorithmus für ungefähre Zeichenkettenübereinstimmung implementiert. Sie funktioniert durch:
- Indexierung: Erstellen einer effizienten Datenstruktur aus Ihren durchsuchbaren Daten
- Bewertung: Berechnung eines Ähnlichkeitswerts zwischen der Suchanfrage und jedem Element (0.0 = perfekte Übereinstimmung, 1.0 = keine Übereinstimmung)
- Filterung: Rückgabe von Ergebnissen, die die Schwellenwertkriterien erfüllen
- Rangfolge: Sortierung der Ergebnisse nach Relevanz basierend auf ihren Bewertungen
Die Bibliothek verwendet konfigurierbare Optionen wie Schwellenwert (wie unscharf die Suche sein soll), Standort (wo Übereinstimmungen erwartet werden) und Entfernung (wie weit vom erwarteten Standort gesucht werden soll), was Entwicklern eine feinkörnige Kontrolle über das Suchverhalten gibt.
Tool-Beschreibung
Der Fuse.js Playground ist eine interaktive Testumgebung für die Fuse.js Fuzzy-Such-Bibliothek. Es ermöglicht Entwicklern, mit allen verfügbaren Suchkonfigurationsoptionen zu experimentieren und Echtzeit-Ergebnisse auf benutzerdefinierten oder Beispieldaten zu sehen. Sie können Suchschlüssel mit benutzerdefinierten Gewichtungen konfigurieren, Grundoptionen wie Groß-/Kleinschreibung und Score-Einbeziehung anpassen und erweiterte Parameter wie Schwellenwert, Standort und Entfernung feinabstimmen. Das Tool bietet sofortiges visuelles Feedback, das zeigt, wie sich Konfigurationsänderungen auf die Suchergebnisse auswirken, was es ideal für das Prototyping von Suchfunktionen vor der Implementierung macht.
Funktionen
- Benutzerdefinierte Dateneingabe: Laden Sie Ihre eigenen JSON-Daten, um das Suchverhalten an realen Datensätzen zu testen
- Konfigurierbare Suchschlüssel: Definieren Sie, welche Felder mit benutzerdefinierten Gewichtungsprioritäten durchsucht werden sollen
- Echtzeit-Ergebnisse: Sofortiges Feedback beim Ändern von Suchanfragen oder Optionen
- Grundoptionen: Steuerung von Groß-/Kleinschreibung, Diakritika-Behandlung, Sortierung und Score-Anzeige
- Erweiterte Feinabstimmung: Anpassung von Schwellenwert, Standort, Entfernung, Feldnormalisierung und mehr
- Erweiterte Suchsyntax: Testen Sie erweiterte Abfragemuster wie Präfixsuche (^), exakte Übereinstimmung (!) und mehr
- Ergebnisvisualisierung: Anzeige der Suchergebnisse in einer sortierbaren Tabelle mit optionalen Übereinstimmungs-Scores
- Beispieldatensatz: Vorgeladene Buchsammlung für sofortiges Testen und Experimentieren
Beispiele
Grundlegende Suche:
- Anfrage: "fantasy" → Findet alle Bücher in der Kategorie Fantasy
- Anfrage: "tolkien" → Findet Bücher des Autors J.R.R. Tolkien
- Anfrage: "herr ringe" → Findet "Der Herr der Ringe" trotz fehlender Wörter
Fuzzy-Übereinstimmung:
- Anfrage: "hary poter" (Tippfehler) → Findet trotzdem "Harry Potter"
- Anfrage: "1984" → Findet das Buch von George Orwell
- Anfrage: "scifi" → Entspricht der Kategorie "Science Fiction"
Erweiterte Suche (wenn aktiviert):
- Anfrage: "^Der" → Findet Titel, die mit "Der" beginnen
- Anfrage: "!Fantasy" → Exakte Übereinstimmung für die Kategorie "Fantasy"
- Anfrage: "'Dune" → Findet Elemente, die das Wort "Dune" enthalten
Konfigurationsoptionen
Suchschlüssel:
- Definieren Sie, welche Felder durchsucht werden sollen (z. B. Titel, Autor, Kategorie)
- Weisen Sie Gewichtungen zu, um bestimmte Felder zu priorisieren (höheres Gewicht = wichtiger)
Grundoptionen:
- Groß-/Kleinschreibung beachten: Groß-/Kleinschreibung genau abgleichen
- Score einbeziehen: Relevanzbewertungen anzeigen (0.0 = perfekt, 1.0 = schlecht)
- Diakritika ignorieren: Akzentuierte Zeichen als ihre Grundform behandeln (é = e)
- Ergebnisse sortieren: Ergebnisse nach Relevanzbewertung ordnen
- Alle Übereinstimmungen finden: Suche nach dem ersten Fund fortsetzen
Erweiterte Optionen:
- Min. Übereinstimmungslänge: Mindestanzahl erforderlicher Zeichen für eine Übereinstimmung (Standard: 1)
- Standort: Erwartete Position der Übereinstimmungen im Text (Standard: 0 = Anfang)
- Schwellenwert: Wie unscharf die Suche sein soll, von 0.0 (exakt) bis 1.0 (sehr unscharf)
- Entfernung: Maximale Entfernung vom erwarteten Standort für die Suche
- Erweiterte Suche verwenden: Erweiterte Abfragesyntax aktivieren (^, !, ' usw.)
- Standort ignorieren: Position beim Abgleich nicht berücksichtigen
- Feldnorm ignorieren: Feldlänge bei der Bewertung nicht berücksichtigen
- Feldnorm-Gewichtung: Wie stark die Feldlänge die Bewertung beeinflusst
Anwendungsfälle
- Testen der Suchimplementierung: Prototyping und Validierung der Suchfunktion vor der Codierung
- API-Konfiguration: Bestimmung optimaler Fuse.js-Einstellungen für Ihre Anwendung
- Analyse des Suchverhaltens: Verstehen, wie verschiedene Optionen die Ergebnisqualität beeinflussen
- Kundendemonstrationen: Stakeholdern zeigen, wie die Suche mit echten Daten funktioniert
- Fuse.js lernen: Praktisches Experimentieren zum Verständnis der Bibliotheksfunktionen
- Datenstrukturtests: Überprüfen, ob Ihre JSON-Datenstruktur mit Fuzzy-Suche funktioniert
- Suchqualitätsabstimmung: Schwellenwert und andere Parameter für beste Ergebnisse feinabstimmen