La búsqueda es un problema fundamental en las ciencias
computacionales, y está presente virtualmente en cada
aplicación de computadora. Las aplicaciones
simples poseen problemas de búsqueda simples, mientras que una aplicación más
compleja podría requerir,
en general, un tipo de búsqueda más sofisticado.
La operación de búsqueda ha sido tradicionalmente aplicada a ``datos estructurados'', un ejemplo
de esto es la
información numérica o alfabética la cual es buscada en forma exacta;
es decir, dada una consulta, deben recuperarse los números o cadenas los cuales son exactamente iguales a la consulta.
Las bases de datos tradicionales son construidas en
torno al concepto de búsqueda exacta, y éstas
están divididas en registros; cada registro tiene una
llave completa comparable. Las consultas a la base de datos regresan
todos los registros cuyas llaves coinciden con la llave de búsqueda. Las búsquedas más sofisticadas tales como
consultas de rango en llaves numéricas o búsquedas de
prefijos en llaves alfabéticas, aún confían en el concepto de que dos llaves son o no iguales. En años
recientes, cuando las bases de datos han incluido la habilidad
para guardar nuevos tipos de datos tales como imágenes, sonido, etc., la búsqueda todavía ha sido hecha
sobre un número predeterminado
de llaves numéricas o alfabéticas.
Con la evolución de la información y las tecnologías de comunicación, los bancos de
información no estructurada han emergido. Los nuevos tipos tales como texto libre, imágenes,
audio y video tienen que ser consultados, y esto ya no es posible para la información estructurada en
llaves y registros, por ser muy difícil estructurar este tipo de datos
y por restringir de antemano el tipo de consulta que se pueda
realizar. Cuando es posible implementar una estructura clásica,
las nuevas aplicaciones tales como la minería de datos que requieren accesar a la base de datos por algún campo
(no solo a los marcados como llaves), se enfrentan a serios problemas. He
aquí la necesidad de contar con
nuevos modelos de búsqueda en bancos de información no estructurados, como lo es la búsqueda por proximidad.