NotariumDocumentación
Versión de la documentación: latest
ES

Búsqueda híbrida

La búsqueda en Notarium se compone de canales independientes que se complementan entre sí. La búsqueda de texto completo (léxica) está siempre disponible y no requiere configuración. La búsqueda semántica (por significado) y el conocimiento de los enlaces del grafo son capas opcionales que se apoyan sobre ella. Los resultados de los canales se fusionan en una única clasificación y, si las capas opcionales no están disponibles, la búsqueda sigue funcionando sobre el texto completo, sin errores.

Tres canales

CanalQué haceCuándo funciona
Léxico (FTS/BM25)Encuentra coincidencias exactas de palabras y frases, ordena por BM25Siempre, sin configuración
Semántico (vectores)Encuentra lo cercano en significado, incluso sin palabras en comúnOpcional (VECTOR_SEARCH)
Refuerzo por grafoIncorpora los vecinos de un resultado a través de [[wiki-links]]Opcional (GRAPH_BOOST), desactivado por defecto

El canal léxico es la base: funciona nada más arrancar, sin nada que instalar. El canal semántico añade la comprensión del significado (sinónimos, paráfrasis), y el refuerzo por grafo añade el conocimiento de los enlaces entre notas.

Cómo se fusionan los resultados

Los canales se combinan mediante el algoritmo RRF (Reciprocal Rank Fusion, k=60): cada canal produce su propia lista clasificada, y RRF las combina en una clasificación común por posición, en lugar de por puntuaciones «en bruto» que no son comparables. Así, una coincidencia léxica y la cercanía semántica se ponderan juntas. La fusión ocurre a nivel de nota, por su identificador estable.

flowchart LR
  q([Consulta]) --> fts[Léxico · FTS/BM25]
  q --> vec[Semántico · vectores]
  q --> gr[Grafo · 1 salto]
  fts --> rrf{Fusión RRF}
  vec --> rrf
  gr --> rrf
  rrf --> res([Resultados])

Si la semántica no está disponible

La capa semántica puede estar desactivada o no disponible: VECTOR_SEARCH no está habilitado, el stack vectorial no está instalado, el modelo no se cargó o el cálculo del vector de la consulta superó el tiempo de espera. En cualquiera de estos casos, la consulta la atiende el canal léxico: la búsqueda siempre responde y no lanza un error solo porque falte la semántica.

La semántica es opcional

La búsqueda vectorial arrastra un stack nativo pesado (~660 MB en disco) y carga el modelo de embeddings en memoria (cientos de MB de RAM), por lo que está desactivada por defecto en la imagen pública. Cómo activarla y qué modelo elegir se explica en Configuración de la búsqueda.

Dónde buscas

  • Spotlight / OmniSearch: un salto rápido y clasificado a una nota. Aquí funciona el híbrido completo: importa la relevancia, no solo la coincidencia exacta de una palabra. Consulta Búsqueda y Spotlight.
  • Filtro del Feed (?q= en el Feed): un filtro léxico sobre el corpus; conserva las notas donde los términos realmente aparecen y se combina con los filtros por carpeta, etiqueta y fecha.

El índice y su reconstrucción

El índice de búsqueda es conocimiento derivado: se construye a partir de los archivos y es totalmente recuperable con un reescaneo. Un índice por espacio. Cambiar el modelo de embeddings no es una migración, sino una reconstrucción de la parte vectorial desde cero. La construcción inicial del índice vectorial en un corpus grande lleva minutos, e incluso horas; durante ese tiempo la interfaz muestra un indicador «Building search index…», mientras que la búsqueda en sí sigue disponible en modo léxico.

Temas relacionados: Grafo de conocimiento, de dónde sale el tercer canal; Configuración de la búsqueda, activar la semántica y elegir un nivel; File-first, por qué el índice es recuperable.