Playground Fuse.js
Playground interattivo per testare e sperimentare con la libreria di ricerca fuzzy Fuse.js. Configura tutte le opzioni di ricerca e visualizza i risultati in tempo reale.
Input
Output
| 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 |
Leggimi
Cos'è la ricerca fuzzy?
La ricerca fuzzy è una tecnica di ricerca che trova corrispondenze anche quando la query di ricerca non corrisponde esattamente al testo. A differenza della ricerca esatta dove "mela" trova solo "mela", la ricerca fuzzy può trovare "mla" (con un errore di battitura), "Mela" (maiuscolo/minuscolo diverso) o anche "mele" (forma plurale). Questo funziona calcolando quanto due stringhe sono simili, tenendo conto di errori di battitura, errori di ortografia, diverse maiuscole/minuscole e variazioni minori. È essenziale per creare esperienze di ricerca user-friendly dove gli utenti non devono digitare query perfettamente accurate per trovare ciò che cercano.
Come funziona Fuse.js?
Fuse.js è una libreria JavaScript che implementa la ricerca fuzzy utilizzando un algoritmo di corrispondenza approssimativa di stringhe. Funziona attraverso:
- Indicizzazione: Creazione di una struttura dati efficiente dai tuoi dati ricercabili
- Punteggio: Calcolo di un punteggio di similarità tra la query di ricerca e ogni elemento (0.0 = corrispondenza perfetta, 1.0 = nessuna corrispondenza)
- Filtraggio: Restituzione dei risultati che soddisfano i criteri di soglia
- Classificazione: Ordinamento dei risultati per rilevanza in base ai loro punteggi
La libreria utilizza opzioni configurabili come soglia (quanto fuzzy dovrebbe essere la ricerca), posizione (dove aspettarsi le corrispondenze) e distanza (quanto lontano dalla posizione attesa cercare), dando agli sviluppatori un controllo fine sul comportamento della ricerca.
Descrizione dello strumento
Il Fuse.js Playground è un ambiente di test interattivo per la libreria di ricerca fuzzy Fuse.js. Consente agli sviluppatori di sperimentare con tutte le opzioni di configurazione della ricerca disponibili e vedere risultati in tempo reale su dati personalizzati o di esempio. Puoi configurare chiavi di ricerca con pesi personalizzati, regolare opzioni di base come sensibilità alle maiuscole e inclusione del punteggio, e mettere a punto parametri avanzati come soglia, posizione e distanza. Lo strumento fornisce feedback visivo immediato mostrando come le modifiche alla configurazione influenzano i risultati della ricerca, rendendolo ideale per prototipare funzionalità di ricerca prima dell'implementazione.
Funzionalità
- Input di dati personalizzati: Carica i tuoi dati JSON per testare il comportamento della ricerca su dataset reali
- Chiavi di ricerca configurabili: Definisci quali campi cercare con priorità di peso personalizzate
- Risultati in tempo reale: Feedback istantaneo mentre modifichi query o opzioni di ricerca
- Opzioni base: Controlla sensibilità alle maiuscole, gestione dei diacritici, ordinamento e visualizzazione del punteggio
- Ottimizzazione avanzata: Regola soglia, posizione, distanza, normalizzazione dei campi e altro
- Sintassi di ricerca estesa: Testa pattern di query avanzati come ricerca per prefisso (^), corrispondenza esatta (!) e altro
- Visualizzazione dei risultati: Visualizza i risultati della ricerca in una tabella ordinabile con punteggi di corrispondenza opzionali
- Dataset di esempio: Collezione di libri precaricata per test e sperimentazione immediati
Esempi
Ricerca di base:
- Query: "fantasy" → Trova tutti i libri nella categoria fantasy
- Query: "tolkien" → Trova libri dell'autore J.R.R. Tolkien
- Query: "signore anelli" → Trova "Il Signore degli Anelli" nonostante le parole mancanti
Corrispondenza fuzzy:
- Query: "hary poter" (errori di battitura) → Trova comunque "Harry Potter"
- Query: "1984" → Trova il libro di George Orwell
- Query: "scifi" → Corrisponde alla categoria "Science Fiction"
Ricerca estesa (quando abilitata):
- Query: "^Il" → Trova titoli che iniziano con "Il"
- Query: "!Fantasy" → Corrispondenza esatta per la categoria "Fantasy"
- Query: "'Dune" → Trova elementi che includono la parola "Dune"
Opzioni di configurazione
Chiavi di ricerca:
- Definisci quali campi cercare (es. titolo, autore, categoria)
- Assegna pesi per dare priorità a determinati campi (peso maggiore = più importante)
Opzioni base:
- Sensibile alle maiuscole: Corrisponde esattamente alle maiuscole/minuscole
- Includi punteggio: Mostra punteggi di rilevanza (0.0 = perfetto, 1.0 = scarso)
- Ignora diacritici: Tratta i caratteri accentati come loro forma base (é = e)
- Ordina risultati: Ordina i risultati per punteggio di rilevanza
- Trova tutte le corrispondenze: Continua la ricerca dopo aver trovato la prima corrispondenza
Opzioni avanzate:
- Lunghezza min. corrispondenza: Caratteri minimi richiesti per una corrispondenza (predefinito: 1)
- Posizione: Posizione attesa delle corrispondenze nel testo (predefinito: 0 = inizio)
- Soglia: Quanto fuzzy dovrebbe essere la ricerca, da 0.0 (esatto) a 1.0 (molto fuzzy)
- Distanza: Distanza massima dalla posizione attesa per cercare
- Usa ricerca estesa: Abilita sintassi di query avanzata (^, !, ', ecc.)
- Ignora posizione: Non considerare la posizione durante la corrispondenza
- Ignora norma campo: Non considerare la lunghezza del campo nel punteggio
- Peso norma campo: Quanto la lunghezza del campo influenza il punteggio
Casi d'uso
- Test di implementazione della ricerca: Prototipazione e validazione della funzionalità di ricerca prima della codifica
- Configurazione API: Determinazione delle impostazioni ottimali di Fuse.js per la tua applicazione
- Analisi del comportamento della ricerca: Comprendere come diverse opzioni influenzano la qualità dei risultati
- Dimostrazioni ai clienti: Mostrare alle parti interessate come si comporterà la ricerca con dati reali
- Apprendimento di Fuse.js: Sperimentazione pratica per comprendere le capacità della libreria
- Test della struttura dati: Verificare che la tua struttura dati JSON funzioni con la ricerca fuzzy
- Ottimizzazione della qualità della ricerca: Mettere a punto soglia e altri parametri per risultati migliori