La normalización de términos es fundamental para que los buscadores de palabras clave encuentren documentos que contienen variaciones lingüísticas, como "cat" y "cats". Sin embargo, una indexación puramente normalizada impide la coincidencia exacta, ya que no distingue entre la forma original y su derivada. Para resolver esta limitación, el motor de búsqueda unobtanium emplea una estrategia de redenormalización que combina ambos enfoques.
El sistema almacena dos estructuras de datos paralelas: un índice principal que mapea las palabras exactas a los documentos y una tabla de normalización que registra las equivalencias lingüísticas, incluyendo el idioma de origen. Esta arquitectura permite mantener la precisión en búsquedas exactas mientras habilita la búsqueda flexible mediante la normalización. Al ejecutar una consulta, el sistema normaliza los términos de la búsqueda, consulta la tabla de equivalencias y luego realiza búsquedas en el índice principal para todas las formas normalizadas y denormalizadas.
Por ejemplo, la búsqueda de "jumping cat" se expande para incluir "jump" y "jumps" junto con "cat" y "cats", garantizando que se recuperen todos los documentos relevantes. Además, la inclusión de una columna de idioma en la tabla de normalización permite soportar múltiples idiomas con un único índice, evitando la necesidad de crear índices separados para cada lengua. Esta metodología, implementada en la versión 3.0.0 de unobtanium, optimiza el rendimiento y la precisión de la búsqueda en un solo motor, accesible a través de la interfaz de token-playground.
