Lume es un motor de búsqueda híbrido escrito en Rust, desarrollado en abierto por DeepBlueDynamics y licenciado bajo BSD-3. Se distribuye como una pequeña CLI y un servidor MCP diseñados para que cada paso de la recuperación —desde la consulta hasta la evidencia— sea inspeccionable, frente a las cajas negras habituales en sistemas agenticos. Indexa Markdown, código fuente y PDFs (mediante un extractor en Python) y combina tres primitivas de ranking independientes: BM25 con conciencia de campo, vectores densos GTR-T5 servidos por Shivvr, y un grafo de entidades con puntuación de significancia. El núcleo léxico y el grafo operan en local; solo la generación de vectores densos sale del equipo, con un endpoint que por defecto apunta a localhost.
La unidad mínima de indexación es la Section, un fragmento de Markdown cortado en los encabezados de nivel uno. Cada Section conserva título y cuerpo como campos separados, con estadísticas propias, lo que permite, por ejemplo, asignar el doble de peso a una coincidencia en el título. El BM25 ofrece tres variantes —Classic, Plus y L— con parámetros clásicos (k1=1,2; b=0,75) y un sistema de poda en dos etapas: primero, unión de listas invertidas en roaring bitmaps; después, un filtro de signaturas de Gödel basado en primos que descarta candidatos cuyos tags no encajan con los reconocidos en la consulta. Solo sobre los supervivientes se ejecuta el scoring pesado.
El artículo detalla además mecanismos de higiene de consulta —filtrado de stopwords solo en el lado de la query y un factor de coordinación que premia los documentos que cubren más términos distintos— y el flujo de embeddings semánticos, con verificación de dimensión 768, indexación incremental por hash de contenido y degradación limpia a BM25 si el componente semántico no está disponible. El resultado es una arquitectura en la que cada puntuación tiene un nombre, un archivo y un parámetro asociado, y el motor imprime por stderr qué podó, qué puntuó y por qué descartó el resto.
