Plac zabaw Fuse.js
Interaktywny plac zabaw do testowania i eksperymentowania z biblioteką wyszukiwania rozmytego Fuse.js. Konfiguruj wszystkie opcje wyszukiwania i obserwuj wyniki w czasie rzeczywistym.
Wejście
Wyjście
| 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 |
Instrukcja
Co to jest wyszukiwanie rozmyte?
Wyszukiwanie rozmyte to technika wyszukiwania, która znajduje dopasowania nawet wtedy, gdy zapytanie nie pasuje dokładnie do tekstu. W przeciwieństwie do wyszukiwania dokładnego, gdzie „apple” pasuje tylko do „apple”, wyszukiwanie rozmyte może znaleźć „aple” (z literówką), „Apple” (różna wielkość liter) lub nawet „apples” (liczba mnoga). Działa to poprzez obliczanie podobieństwa dwóch ciągów znaków, uwzględniając literówki, błędy ortograficzne, różne wielkości znaków oraz drobne wariacje. Jest to niezbędne do tworzenia przyjaznych użytkownikowi doświadczeń wyszukiwania, w których użytkownicy nie muszą wpisywać idealnie dokładnych zapytań, aby znaleźć to, czego szukają.
Jak działa Fuse.js?
Fuse.js to biblioteka JavaScript implementująca wyszukiwanie rozmyte przy użyciu algorytmu przybliżonego dopasowywania ciągów znaków. Działa ona w następujący sposób:
- Indeksowanie: Tworzenie wydajnej struktury danych z Twoich danych przeszukiwalnych
- Ocena: Obliczanie współczynnika podobieństwa pomiędzy zapytaniem a każdym elementem (0.0 = idealne dopasowanie, 1.0 = brak dopasowania)
- Filtrowanie: Zwracanie wyników spełniających kryteria progu
- Ranking: Sortowanie wyników według trafności na podstawie ich ocen
Biblioteka używa konfigurowalnych opcji, takich jak próg (jak rozmyte ma być wyszukiwanie), lokalizacja (gdzie spodziewane są dopasowania) oraz odległość (jak daleko od oczekiwanej lokalizacji szukać), dając programistom precyzyjną kontrolę nad zachowaniem wyszukiwania.
Opis narzędzia
Fuse.js Playground to interaktywne środowisko testowe dla biblioteki Fuse.js. Umożliwia programistom eksperymentowanie ze wszystkimi dostępnymi opcjami konfiguracji wyszukiwania i podgląd wyników w czasie rzeczywistym na danych własnych lub przykładowych. Możesz konfigurować klucze wyszukiwania z własnymi wagami, dostosowywać podstawowe opcje, takie jak wrażliwość na wielkość liter i wyświetlanie oceny, oraz precyzyjnie regulować zaawansowane parametry, takie jak próg, lokalizacja i odległość. Narzędzie zapewnia natychmiastową wizualną informację zwrotną, pokazując, jak zmiany konfiguracji wpływają na wyniki wyszukiwania, co czyni je idealnym do prototypowania funkcjonalności wyszukiwania przed implementacją.
Funkcje
- Wprowadzanie własnych danych: Załaduj własny plik JSON, aby przetestować zachowanie wyszukiwania na rzeczywistych zestawach danych
- Konfigurowalne klucze wyszukiwania: Określ, które pola mają być przeszukiwane, z własnymi priorytetami wagowymi
- Wyniki w czasie rzeczywistym: Otrzymuj natychmiastową informację zwrotną podczas modyfikacji zapytań lub opcji
- Podstawowe opcje: Kontroluj wrażliwość na wielkość liter, obsługę znaków diakrytycznych, sortowanie i wyświetlanie oceny
- Zaawansowane dostrajanie: Reguluj próg, lokalizację, odległość, normalizację pól i inne
- Rozszerzona składnia wyszukiwania: Testuj zaawansowane wzorce zapytań, takie jak wyszukiwanie prefiksowe (^), dopasowanie dokładne (!) i inne
- Wizualizacja wyników: Przeglądaj wyniki w sortowalnej tabeli z opcjonalnym wyświetlaniem ocen dopasowania
- Przykładowy zestaw danych: Wstępnie załadowana kolekcja książek do natychmiastowego testowania i eksperymentowania
Przykłady
Podstawowe wyszukiwanie:
- Zapytanie: „fantasy” → Znajduje wszystkie książki z kategorii fantasy
- Zapytanie: „tolkien” → Znajduje książki autorstwa J.R.R. Tolkien
- Zapytanie: „lord rings” → Znajduje „The Lord of the Rings” mimo brakujących słów
Dopasowanie rozmyte:
- Zapytanie: „hary poter” (literówki) → Nadal znajduje „Harry Potter”
- Zapytanie: „1984” → Znajduje książkę George’a Orwella
- Zapytanie: „scifi” → Dopasowuje kategorię „Science Fiction”
Rozszerzone wyszukiwanie (gdy włączone):
- Zapytanie: „^The” → Znajduje tytuły zaczynające się od „The”
- Zapytanie: „!Fantasy” → Dokładne dopasowanie do kategorii „Fantasy”
- Zapytanie: „'Dune” → Znajduje pozycje zawierające słowo „Dune”
Opcje konfiguracji
Klucze wyszukiwania:
- Określ, które pola mają być przeszukiwane (np. title, author, category)
- Przypisz wagi, aby priorytetyzować niektóre pola (wyższa waga = większe znaczenie)
Podstawowe opcje:
- Case Sensitive: Dopasowuj wielkość liter dokładnie
- Include Score: Wyświetlaj oceny trafności (0.0 = idealne, 1.0 = słabe)
- Ignore Diacritics: Traktuj znaki diakrytyczne jako ich podstawowe formy (é = e)
- Sort Results: Sortuj wyniki według oceny trafności
- Find All Matches: Kontynuuj wyszukiwanie po znalezieniu pierwszego dopasowania
Zaawansowane opcje:
- Min Match Char Length: Minimalna liczba znaków wymagana do dopasowania (domyślnie: 1)
- Location: Oczekiwana pozycja dopasowań w tekście (domyślnie: 0 = początek)
- Threshold: Jak rozmyte ma być wyszukiwanie, od 0.0 (dokładne) do 1.0 (bardzo rozmyte)
- Distance: Maksymalna odległość od oczekiwanej lokalizacji, w której szukać
- Use Extended Search: Włącz zaawansowaną składnię zapytań (^, !, ', itp.)
- Ignore Location: Nie uwzględniaj pozycji przy dopasowywaniu
- Ignore Field Norm: Nie uwzględniaj długości pola przy ocenie
- Field Norm Weight: Jak bardzo długość pola wpływa na ocenę
Przypadki użycia
- Testowanie implementacji wyszukiwania: Prototypowanie i weryfikacja funkcjonalności wyszukiwania przed kodowaniem
- Konfiguracja API: Określanie optymalnych ustawień Fuse.js dla Twojej aplikacji
- Analiza zachowania wyszukiwania: Zrozumienie, jak różne opcje wpływają na jakość wyników
- Prezentacje dla klienta: Pokazywanie interesariuszom, jak wyszukiwanie zachowuje się na rzeczywistych danych
- Nauka Fuse.js: Praktyczne eksperymenty w celu zrozumienia możliwości biblioteki
- Testowanie struktury danych: Weryfikacja, czy struktura JSON współpracuje z wyszukiwaniem rozmytym
- Dostrajanie jakości wyszukiwania: Precyzyjne ustawianie progu i innych parametrów dla najlepszych rezultatów