Búsqueda
Engram indexa el contenido de las notas para la búsqueda semántica, que encuentra notas con un significado parecido al de tu consulta, aunque la redacción sea distinta. También admite la búsqueda de coincidencia exacta, pero dónde se ejecuta depende del alcance.
Cómo busca Engram
Sección titulada «Cómo busca Engram»- Búsqueda semántica en toda la bóveda. Similitud vectorial sobre los embeddings de cada nota. Encuentra ideas relacionadas, no solo texto literal. Es lo que se ejecuta hoy desde el panel de búsqueda de la aplicación web.
- Búsqueda por palabras clave e híbrida. El backend también indexa las notas para una búsqueda por palabras clave (léxica) segura con el cifrado y para un modo híbrido que fusiona resultados léxicos y vectoriales (ver más abajo). Esto ya está en el backend; el panel de búsqueda de la aplicación web aún no expone un selector de modo, así que por ahora lanza consultas semánticas.
- Coincidencia exacta dentro de una nota abierta.
Ctrl/Cmd+Fy Buscar/Reemplazar del editor funcionan sobre la nota descifrada en tu sesión actual, igual que en cualquier editor de texto.
¿Y la búsqueda literal / con regex?
Sección titulada «¿Y la búsqueda literal / con regex?»Engram admite la búsqueda por palabras clave (léxica) en toda tu
bóveda, y lo hace sin romper el cifrado en reposo. En lugar de
analizar texto plano, el backend indexa un vector disperso por fragmento
con clave HMAC(your vault key, token), de modo que el servidor puede
comparar los términos de la consulta con el índice sin llegar a tener
texto legible de las notas. Los modos por palabras clave, semántico
(vectorial) e híbrido (léxico + vectorial combinados en el servidor
mediante reciprocal-rank fusion) están todos activos en el backend.
Esto significa que la búsqueda real de subcadenas o con expresiones
regulares sobre el texto sin procesar sigue sin ser posible en el
servidor (el índice es de tokens, no de caracteres). Por eso, para
búsquedas literales con expresiones regulares, con distinción de
mayúsculas y minúsculas o filtradas por ruta, la herramienta sigue
siendo el panel de búsqueda local de Obsidian (que opera sobre tus
archivos .md en disco). Ctrl/Cmd+F del editor también sirve para
buscar dentro de una nota abierta.
La búsqueda de Engram y la de Obsidian se complementan: semántica, por palabras clave e híbrida en la nube; búsqueda literal completa con regex, sensible a mayúsculas y filtrada por ruta en disco. El panel de búsqueda local de Obsidian funciona sobre la misma bóveda que Engram está sincronizando.
Desde dónde buscar
Sección titulada «Desde dónde buscar»- Panel de búsqueda de la aplicación web (la barra de búsqueda): consultas semánticas hoy
- El plugin de Obsidian ejecuta la búsqueda contra el mismo backend que la aplicación web
- El panel Search de Obsidian para búsquedas literales locales con regex, sensibles a mayúsculas y por ruta sobre la bóveda en disco
Para un patrón regex o una coincidencia literal acotada por ruta, usa la búsqueda local de Obsidian.
Cómo funciona el ranking
Sección titulada «Cómo funciona el ranking»- Tu consulta se convierte en embedding (el modelo de consultas es asimétrico respecto al modelo de documentos, ajustado para la recuperación y no para la indexación)
- Qdrant devuelve las K mejores coincidencias vectoriales con cuantización binaria + reevaluación
- Si hay un reranker configurado (
RERANKER_BACKEND=jina+JINA_URLen el backend), los candidatos se reordenan con una mezcla 40/60 de puntuaciones vectoriales y del reranker; si no, se usa el ranking vectorial en bruto
El despliegue en la nube por defecto funciona hoy sin reranker; el adaptador de Jina está publicado y listo para activarse.
Acotar por carpeta
Sección titulada «Acotar por carpeta»Restringir la búsqueda a una carpeta es posible mediante la API. Pasa
un parámetro de consulta folder=<path>. Una sintaxis de consulta en
el cuadro de búsqueda como folder:work/ está en la hoja de ruta,
pero aún no está conectada a la interfaz.
Cuándo la búsqueda semántica rinde menos
Sección titulada «Cuándo la búsqueda semántica rinde menos»- La bóveda es muy pequeña (< 20 notas). Hay menos embeddings con los que comparar; los resultados tienden a ser ruidosos hasta que tu bóveda crece
- Notas recién importadas. El embedding se ejecuta de forma asíncrona mediante Oban; las notas recién escritas pueden tardar unos segundos en aparecer en los resultados
- Jerga muy específica. La similitud semántica funciona mejor con conceptos. Para identificadores exactos (el nombre de una función, un código de error), la búsqueda por palabras clave e híbrida (léxica + vectorial) es más adecuada. Ambas están activas en el backend, y falta exponerlas en la interfaz de la aplicación web. Mientras tanto, la búsqueda local de Obsidian cubre los identificadores exactos.