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
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ę