Playground de Fuse.js
Playground interactivo para probar y experimentar con la biblioteca de búsqueda difusa Fuse.js. Configure todas las opciones de búsqueda y vea resultados en tiempo real.
Entrada
Salida
| 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 |
Leerme
¿Qué es la búsqueda difusa?
La búsqueda difusa es una técnica de búsqueda que encuentra coincidencias incluso cuando la consulta de búsqueda no coincide exactamente con el texto. A diferencia de la búsqueda exacta donde "manzana" solo encuentra "manzana", la búsqueda difusa puede encontrar "manzna" (con un error tipográfico), "Manzana" (diferente mayúscula/minúscula) o incluso "manzanas" (forma plural). Esto funciona calculando qué tan similares son dos cadenas, teniendo en cuenta errores tipográficos, errores ortográficos, diferentes mayúsculas/minúsculas y variaciones menores. Es esencial para crear experiencias de búsqueda amigables donde los usuarios no necesitan escribir consultas perfectamente precisas para encontrar lo que buscan.
¿Cómo funciona Fuse.js?
Fuse.js es una biblioteca de JavaScript que implementa búsqueda difusa utilizando un algoritmo de coincidencia aproximada de cadenas. Funciona mediante:
- Indexación: Creación de una estructura de datos eficiente a partir de tus datos buscables
- Puntuación: Cálculo de una puntuación de similitud entre la consulta de búsqueda y cada elemento (0.0 = coincidencia perfecta, 1.0 = sin coincidencia)
- Filtrado: Devolución de resultados que cumplen los criterios del umbral
- Clasificación: Ordenamiento de resultados por relevancia basado en sus puntuaciones
La biblioteca utiliza opciones configurables como umbral (qué tan difusa debe ser la búsqueda), ubicación (dónde esperar coincidencias) y distancia (qué tan lejos de la ubicación esperada buscar), dando a los desarrolladores un control preciso sobre el comportamiento de búsqueda.
Descripción de la herramienta
El Fuse.js Playground es un entorno de pruebas interactivo para la biblioteca de búsqueda difusa Fuse.js. Permite a los desarrolladores experimentar con todas las opciones de configuración de búsqueda disponibles y ver resultados en tiempo real en datos personalizados o de ejemplo. Puedes configurar claves de búsqueda con pesos personalizados, ajustar opciones básicas como sensibilidad a mayúsculas e inclusión de puntuación, y ajustar parámetros avanzados como umbral, ubicación y distancia. La herramienta proporciona retroalimentación visual inmediata mostrando cómo los cambios de configuración afectan los resultados de búsqueda, haciéndola ideal para prototipar funcionalidad de búsqueda antes de la implementación.
Características
- Entrada de datos personalizada: Carga tus propios datos JSON para probar el comportamiento de búsqueda en conjuntos de datos reales
- Claves de búsqueda configurables: Define qué campos buscar con prioridades de peso personalizadas
- Resultados en tiempo real: Retroalimentación instantánea mientras modificas consultas u opciones de búsqueda
- Opciones básicas: Controla sensibilidad a mayúsculas, manejo de diacríticos, ordenamiento y visualización de puntuación
- Ajuste avanzado: Ajusta umbral, ubicación, distancia, normalización de campos y más
- Sintaxis de búsqueda extendida: Prueba patrones de consulta avanzados como búsqueda por prefijo (^), coincidencia exacta (!) y más
- Visualización de resultados: Visualiza los resultados de búsqueda en una tabla ordenable con puntuaciones de coincidencia opcionales
- Conjunto de datos de ejemplo: Colección de libros precargada para pruebas y experimentación inmediatas
Ejemplos
Búsqueda básica:
- Consulta: "fantasía" → Encuentra todos los libros en la categoría fantasía
- Consulta: "tolkien" → Encuentra libros del autor J.R.R. Tolkien
- Consulta: "señor anillos" → Encuentra "El Señor de los Anillos" a pesar de las palabras faltantes
Coincidencia difusa:
- Consulta: "hary poter" (errores tipográficos) → Aún encuentra "Harry Potter"
- Consulta: "1984" → Encuentra el libro de George Orwell
- Consulta: "cienciaficcion" → Coincide con la categoría "Ciencia Ficción"
Búsqueda extendida (cuando está habilitada):
- Consulta: "^El" → Encuentra títulos que comienzan con "El"
- Consulta: "!Fantasía" → Coincidencia exacta para la categoría "Fantasía"
- Consulta: "'Dune" → Encuentra elementos que incluyen la palabra "Dune"
Opciones de configuración
Claves de búsqueda:
- Define qué campos buscar (ej. título, autor, categoría)
- Asigna pesos para priorizar ciertos campos (mayor peso = más importante)
Opciones básicas:
- Sensible a mayúsculas: Coincide exactamente con mayúsculas/minúsculas
- Incluir puntuación: Muestra puntuaciones de relevancia (0.0 = perfecto, 1.0 = malo)
- Ignorar diacríticos: Trata caracteres acentuados como su forma base (é = e)
- Ordenar resultados: Ordena resultados por puntuación de relevancia
- Encontrar todas las coincidencias: Continúa buscando después de encontrar la primera coincidencia
Opciones avanzadas:
- Longitud mín. de coincidencia: Caracteres mínimos requeridos para una coincidencia (predeterminado: 1)
- Ubicación: Posición esperada de las coincidencias en el texto (predeterminado: 0 = inicio)
- Umbral: Qué tan difusa debe ser la búsqueda, de 0.0 (exacto) a 1.0 (muy difuso)
- Distancia: Distancia máxima desde la ubicación esperada para buscar
- Usar búsqueda extendida: Habilita sintaxis de consulta avanzada (^, !, ', etc.)
- Ignorar ubicación: No considerar la posición al hacer coincidencias
- Ignorar norma de campo: No tener en cuenta la longitud del campo en la puntuación
- Peso de norma de campo: Cuánto afecta la longitud del campo a la puntuación
Casos de uso
- Prueba de implementación de búsqueda: Prototipado y validación de funcionalidad de búsqueda antes de codificar
- Configuración de API: Determinación de configuraciones óptimas de Fuse.js para tu aplicación
- Análisis de comportamiento de búsqueda: Comprender cómo diferentes opciones afectan la calidad de los resultados
- Demostraciones a clientes: Mostrar a las partes interesadas cómo se comportará la búsqueda con datos reales
- Aprendizaje de Fuse.js: Experimentación práctica para comprender las capacidades de la biblioteca
- Prueba de estructura de datos: Verificar que tu estructura de datos JSON funcione con búsqueda difusa
- Ajuste de calidad de búsqueda: Ajustar umbral y otros parámetros para mejores resultados