Tengo una base de datos de cadenas (longitud arbitraria) que contiene más de un millón de elementos (potencialmente más).Cómo encontrar la mejor coincidencia difusa para una cadena en una base de datos de cadena grande
Necesito comparar una cadena proporcionada por el usuario con toda la base de datos y recuperar una cadena idéntica si existe o devolver la (s) coincidencia (s) difusa (s) más cercana (60% de similitud o mejor). El tiempo de búsqueda idealmente debería ser inferior a un segundo.
Mi idea es utilizar la distancia de edición para comparar cada cadena de base de datos a la cadena de búsqueda después de reducir los candidatos de la base de datos en función de su longitud.
Sin embargo, como tendré que realizar esta operación muy a menudo, estoy pensando en construir un índice de las cadenas de db para mantener en la memoria y consultar el índice, no el db directamente.
¿Alguna idea sobre cómo abordar este problema de manera diferente o cómo crear el índice en memoria?
Uso de qué plataforma? – skaffman