Fuzzy Search
La búsqueda difusa es una técnica de búsqueda tolerante a variaciones ortográficas que empareja resultados aproximados basándose en distancia de edición, n-gramas o algoritmos fonéticos.
Propósito
Devolver resultados relevantes incluso cuando la entrada del usuario contiene erratas o variantes, mejorando la experiencia de búsqueda.
Mecanismo
Métodos habituales: emparejamiento por umbral de distancia Levenshtein, índices invertidos de n-gramas, aceleración con BK-tree, emparejamiento fonético Soundex/Metaphone y el algoritmo Bitap. Implementaciones: fuse.js, la consulta fuzzy de Elasticsearch y otros.
Casos de uso
- Corrección ortográfica en buscadores
- Autocompletado en línea de comandos
- Consultas difusas en bases de datos
- Búsqueda de código (tolerante a erratas)
Ejemplos
- entrada
recieve → receiveOutputMatches receive (distance 2)Spelling correction
Errores comunes
- Overly loose thresholds cause too many false matches
- Adjust thresholds dynamically based on word length
Términos relacionados
Levenshtein Distance
La distancia de Levenshtein es el número mínimo de inserciones, eliminaciones y sustituciones de un solo carácter necesarias para hacer idénticas dos cadenas. GLOSARIO
Soundex
Soundex es un algoritmo fonético que codifica los nombres en inglés por su pronunciación como una letra más tres dígitos, dando a los nombres de sonido similar el mismo código; se usa para la recuperación difusa de nombres de personas. GLOSARIO
N-gram
Un N-grama es una secuencia de N unidades consecutivas (caracteres o palabras) extraída de un texto, usada en modelos de lenguaje, similitud y análisis de texto. GLOSARIO
Edit Distance
La distancia de edición es el mínimo número de operaciones de edición de un solo carácter (inserción, borrado, sustitución) necesarias para transformar una cadena en otra; la distancia de Levenshtein es su forma más común. GLOSARIO