Fuse.js игрална площадка
Интерактивна игрална площадка за тестване и експериментиране с Fuse.js библиотека за размито търсене. Конфигурирайте всички опции за търсене и вижте резултати в реално време.
Вход
Изход
| 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 |
Прочети ме
Какво е Fuzzy Search?
Fuzzy search е техника за търсене, която намира съвпадения дори когато заявката за търсене не съответства точно на текста. За разлика от точното търсене, където "apple" съвпада само с "apple", fuzzy search може да намери "aple" (с печатна грешка), "Apple" (различен регистър) или дори "apples" (множествено число). Това работи чрез изчисляване на сходството между два низа, като се отчитат печатни грешки, неправилни написания, различни регистри на символи и малки вариации. Това е от съществено значение за създаване на удобни за потребителя преживявания при търсене, където потребителите не трябва да въвеждат перфектно точни заявки, за да намерят това, което търсят.
Как работи Fuse.js?
Fuse.js е JavaScript библиотека, която реализира fuzzy search с помощта на алгоритъм за приблизително съвпадение на низове. Работи по следния начин:
- Индексиране: Създаване на ефективна структура от данни от вашите данни за търсене
- Оценяване: Изчисляване на оценка за сходство между заявката за търсене и всеки елемент (0.0 = перфектно съвпадение, 1.0 = няма съвпадение)
- Филтриране: Връщане на резултати, които отговарят на критериите на прага
- Класиране: Сортиране на резултатите по релевантност въз основа на техните оценки
Библиотеката използва конфигурируеми опции като threshold (колко fuzzy трябва да бъде търсенето), location (където да се очакват съвпадения) и distance (колко далеч от очаквания локус да се търси), давайки на разработчиците фин контрол над поведението на търсенето.
Описание на инструмента
Fuse.js Playground е интерактивна тестова среда за библиотеката Fuse.js fuzzy search. Позволява на разработчиците да експериментират със всички налични опции за конфигурация на търсенето и да видят резултатите в реално време на персонализирани или примерни данни. Можете да конфигурирате ключове за търсене с персонализирани тегла, да регулирате основни опции като чувствителност към регистъра и включване на оценки, и да настройте фино напреднали параметри като threshold, location и distance. Инструментът предоставя незабавна визуална обратна връзка, показваща как промените в конфигурацията влияят на резултатите от търсенето, което го прави идеален за прототипиране на функционалност за търсене преди внедряване.
Функции
- Персонализиран вход на данни: Заредете вашите собствени JSON данни, за да тествате поведението на търсенето на реални набори от данни
- Конфигурируеми ключове за търсене: Определете кои полета да се търсят с персонализирани приоритети на тегла
- Резултати в реално време: Вижте незабавна обратна връзка, докато модифицирате заявки за търсене или опции
- Основни опции: Контролирайте чувствителност към регистъра, обработка на диакритици, сортиране и показване на оценки
- Напреднало фино настройване: Регулирайте threshold, location, distance, нормализиране на полета и още много
- Разширена синтаксис за търсене: Тествайте напредналите модели на заявки като търсене по префикс (^), точно съвпадение (!) и други
- Визуализация на резултатите: Вижте резултатите от търсенето в сортируема таблица с опционални оценки на съвпадения
- Примерен набор от данни: Предварително заредена колекция от книги за незабавно тестване и експериментиране
Примери
Основно търсене:
- Заявка: "fantasy" → Намира всички книги в категорията fantasy
- Заявка: "tolkien" → Намира книги на автор J.R.R. Tolkien
- Заявка: "lord rings" → Намира "The Lord of the Rings" въпреки липсващи думи
Fuzzy съвпадение:
- Заявка: "hary poter" (печатни грешки) → Все още намира "Harry Potter"
- Заявка: "1984" → Намира книгата на George Orwell
- Заявка: "scifi" → Съвпада със "Science Fiction" категория
Разширено търсене (когато е активирано):
- Заявка: "^The" → Намира заглавия, които започват с "The"
- Заявка: "!Fantasy" → Точно съвпадение за категория "Fantasy"
- Заявка: "'Dune" → Намира елементи, включващи думата "Dune"
Опции за конфигурация
Ключове за търсене:
- Определете кои полета да се търсят (например title, author, category)
- Присвойте тегла, за да приоритизирате определени полета (по-високо тегло = по-важно)
Основни опции:
- Чувствителност към регистъра: Съвпадение на буквите точно
- Включване на оценка: Показване на оценки за релевантност (0.0 = перфектно, 1.0 = лошо)
- Игнориране на диакритици: Третирайте акцентирани символи като тяхната базова форма (é = e)
- Сортиране на резултатите: Подредете резултатите по оценка за релевантност
- Намиране на всички съвпадения: Продължете търсенето след намиране на първото съвпадение
Напредналите опции:
- Минимална дължина на символите за съвпадение: Минимален брой символи, необходими за съвпадение (по подразбиране: 1)
- Location: Очаквана позиция на съвпадения в текста (по подразбиране: 0 = начало)
- Threshold: Колко fuzzy трябва да бъде търсенето, от 0.0 (точно) до 1.0 (много fuzzy)
- Distance: Максимално разстояние от очаквания локус за търсене
- Използване на разширено търсене: Активирайте напредналата синтаксис на заявки (^, !, ', и т.н.)
- Игнориране на локуса: Не отчитайте позицията при съвпадение
- Игнориране на нормализиране на полета: Не отчитайте дължината на полето при оценяване
- Тегло за нормализиране на полета: Колко дължината на полето влияе на оценяването
Случаи на употреба
- Тестване на внедряване на търсене: Прототипирайте и валидирайте функционалност за търсене преди кодиране
- Конфигурация на API: Определете оптималните настройки на Fuse.js за вашето приложение
- Анализ на поведението при търсене: Разберете как различните опции влияят на качеството на резултатите
- Демонстрации за клиенти: Покажете на заинтересованите страни как ще се държи търсенето с реални данни
- Обучение на Fuse.js: Практическо експериментиране, за да разберете възможностите на библиотеката
- Тестване на структура на данни: Проверете дали вашата JSON структура на данни работи с fuzzy search
- Настройване на качеството на търсенето: Фино настройте threshold и други параметри за най-добри резултати