Fuse.js lekeplass
Interaktiv lekeplass for testing og eksperimentering med Fuse.js fuzzy søkebibliotek. Konfigurer alle søkealternativer og se resultater i sanntid.
Inndata
Utdata
| 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 |
Les meg
Hva er fuzzy-søk?
Fuzzy-søk er en søketeknikk som finner treff selv når søket ikke matcher teksten nøyaktig. I motsetning til eksakt søk hvor "eple" bare finner "eple", kan fuzzy-søk finne "epl" (med skrivefeil), "Eple" (annen store/små bokstaver) eller til og med "epler" (flertallsform). Dette fungerer ved å beregne hvor like to strenger er, og tar hensyn til skrivefeil, stavefeil, ulike store/små bokstaver og mindre variasjoner. Det er essensielt for å skape brukervennlige søkeopplevelser hvor brukere ikke trenger å skrive perfekt nøyaktige forespørsler for å finne det de leter etter.
Hvordan fungerer Fuse.js?
Fuse.js er et JavaScript-bibliotek som implementerer fuzzy-søk ved hjelp av en algoritme for omtrentlig strengmatching. Den fungerer ved å:
- Indeksering: Opprette en effektiv datastruktur fra dine søkbare data
- Poenggiving: Beregne en likhetsscore mellom søket og hvert element (0.0 = perfekt match, 1.0 = ingen match)
- Filtrering: Returnere resultater som oppfyller terskelkriteriene
- Rangering: Sortere resultater etter relevans basert på deres score
Biblioteket bruker konfigurerbare alternativer som terskel (hvor fuzzy søket skal være), plassering (hvor man forventer treff) og avstand (hvor langt fra forventet plassering man skal søke), som gir utviklere finkornet kontroll over søkeatferd.
Verktøybeskrivelse
Fuse.js Playground er et interaktivt testmiljø for Fuse.js fuzzy-søk-biblioteket. Det lar utviklere eksperimentere med alle tilgjengelige søkekonfigurasjonsalternativer og se sanntidsresultater på egendefinerte eller eksempeldata. Du kan konfigurere søkenøkler med egendefinerte vekter, justere grunnleggende alternativer som store/små bokstaver og score-inkludering, og finjustere avanserte parametere som terskel, plassering og avstand. Verktøyet gir umiddelbar visuell tilbakemelding som viser hvordan konfigurasjonsendringer påvirker søkeresultater, noe som gjør det ideelt for prototyping av søkefunksjonalitet før implementering.
Funksjoner
- Egendefinert datainngang: Last inn dine egne JSON-data for å teste søkeatferd på virkelige datasett
- Konfigurerbare søkenøkler: Definer hvilke felt som skal søkes med egendefinerte vektprioriteringer
- Sanntidsresultater: Umiddelbar tilbakemelding når du endrer søk eller alternativer
- Grunnleggende alternativer: Kontroller store/små bokstaver, diakritisk håndtering, sortering og scorevisning
- Avansert finjustering: Juster terskel, plassering, avstand, feltnormalisering og mer
- Utvidet søkesyntaks: Test avanserte søkemønstre som prefikssøk (^), eksakt match (!) og mer
- Resultatvisualisering: Vis søkeresultater i en sorterbar tabell med valgfrie match-score
- Eksempeldatasett: Forhåndslastet boksamling for umiddelbar testing og eksperimentering
Eksempler
Grunnleggende søk:
- Søk: "fantasy" → Finner alle bøker i fantasy-kategorien
- Søk: "tolkien" → Finner bøker av forfatter J.R.R. Tolkien
- Søk: "ringenes herre" → Finner "Ringenes Herre" til tross for manglende ord
Fuzzy-matching:
- Søk: "hary poter" (skrivefeil) → Finner fortsatt "Harry Potter"
- Søk: "1984" → Finner boken av George Orwell
- Søk: "scifi" → Matcher "Science Fiction"-kategorien
Utvidet søk (når aktivert):
- Søk: "^Ringenes" → Finner titler som starter med "Ringenes"
- Søk: "!Fantasy" → Eksakt match for "Fantasy"-kategorien
- Søk: "'Dune" → Finner elementer som inkluderer ordet "Dune"
Konfigurasjonsalternativer
Søkenøkler:
- Definer hvilke felt som skal søkes (f.eks. tittel, forfatter, kategori)
- Tildel vekter for å prioritere visse felt (høyere vekt = viktigere)
Grunnleggende alternativer:
- Store/små bokstaver: Match bokstavstørrelse nøyaktig
- Inkluder score: Vis relevansscore (0.0 = perfekt, 1.0 = dårlig)
- Ignorer diakritiske tegn: Behandle aksentuerte tegn som deres grunnform (é = e)
- Sorter resultater: Ordne resultater etter relevansscore
- Finn alle treff: Fortsett søk etter å ha funnet første treff
Avanserte alternativer:
- Min. matchlengde: Minimum antall tegn nødvendig for et treff (standard: 1)
- Plassering: Forventet posisjon for treff i teksten (standard: 0 = begynnelse)
- Terskel: Hvor fuzzy søket skal være, fra 0.0 (eksakt) til 1.0 (veldig fuzzy)
- Avstand: Maksimal avstand fra forventet plassering for å søke
- Bruk utvidet søk: Aktiver avansert søkesyntaks (^, !, ', osv.)
- Ignorer plassering: Ikke vurder posisjon ved matching
- Ignorer feltnorm: Ikke ta hensyn til feltlengde i poenggiving
- Feltnormvekt: Hvor mye feltlengde påvirker poenggiving
Bruksområder
- Testing av søkeimplementering: Prototyping og validering av søkefunksjonalitet før koding
- API-konfigurasjon: Bestemme optimale Fuse.js-innstillinger for applikasjonen din
- Analyse av søkeatferd: Forstå hvordan ulike alternativer påvirker resultatkvalitet
- Kundedemonstrasjoner: Vise interessenter hvordan søk vil oppføre seg med virkelige data
- Lære Fuse.js: Praktisk eksperimentering for å forstå bibliotekets muligheter
- Testing av datastruktur: Verifisere at din JSON-datastruktur fungerer med fuzzy-søk
- Justering av søkekvalitet: Finjustere terskel og andre parametere for best resultater