Busca
O Engram indexa o conteúdo das notas para a busca semântica, que encontra notas com significado parecido com o da sua consulta, mesmo quando a redação é diferente. A busca por correspondência exata também é suportada, mas onde ela roda depende do escopo.
Como o Engram busca
Seção intitulada “Como o Engram busca”- Busca semântica no cofre inteiro. Similaridade vetorial sobre os embeddings de cada nota. Encontra ideias relacionadas, não só texto literal. É isso que roda hoje no painel de busca do app web.
- Busca por palavra-chave e híbrida. O backend também indexa as notas para uma busca por palavra-chave (lexical) segura para criptografia e um modo híbrido que funde resultados lexicais e vetoriais (veja abaixo). Isso está no backend; o painel de busca do app web ainda não expõe uma troca de modo, então por enquanto ele faz consultas semânticas.
- Correspondência exata dentro de uma nota aberta.
Ctrl/Cmd+Fe o Find/Replace do editor funcionam sobre a nota descriptografada na sua sessão atual, como em qualquer editor de texto.
E a busca literal / regex?
Seção intitulada “E a busca literal / regex?”O Engram oferece busca por palavra-chave (lexical) em todo o seu
cofre, e faz isso sem quebrar a criptografia em repouso. Em vez de
varrer texto em claro, o backend indexa um vetor esparso por trecho,
com chave HMAC(your vault key, token), de modo que o servidor
consegue comparar os termos da consulta com o índice sem nunca ter em
mãos o texto legível das notas. Os modos de palavra-chave, semântico
(vetorial) e híbrido (lexical + vetorial combinados no servidor por
reciprocal-rank fusion) estão todos no ar no backend.
Isso significa que a busca verdadeira por substring/regex sobre o texto
bruto continua não sendo possível no servidor (o índice é de tokens, não
de caracteres). Para busca literal com regex, que diferencia maiúsculas
de minúsculas ou filtrada por caminho, o painel de Busca local do
Obsidian (que roda sobre seus arquivos .md em disco) continua sendo a
ferramenta. O Ctrl/Cmd+F do editor também funciona para localizar
dentro de uma nota aberta.
A busca do Engram e a do Obsidian são complementares: semântica, por palavra-chave e híbrida na nuvem; busca literal completa com regex / diferenciação de maiúsculas / filtro por caminho no disco. O painel de busca local do Obsidian roda sobre o mesmo cofre que o Engram está sincronizando.
De onde buscar
Seção intitulada “De onde buscar”- Painel de busca do app web (a barra de busca): consultas semânticas hoje
- O plugin do Obsidian faz a busca no mesmo backend do app web
- O painel de busca do Obsidian para busca literal local com regex / diferenciação de maiúsculas / caminho sobre o cofre no disco
Para um padrão regex ou uma correspondência literal restrita a um caminho, use a busca local do Obsidian.
Como o ranking funciona
Seção intitulada “Como o ranking funciona”- Sua consulta é transformada em embedding (o modelo de consulta é assimétrico em relação ao modelo de documentos, ajustado para recuperação e não para indexação)
- O Qdrant devolve as K melhores correspondências vetoriais com quantização binária + rescore
- Se um reranker estiver configurado (
RERANKER_BACKEND=jina+JINA_URLno backend), os candidatos são reordenados com uma mistura 40/60 das pontuações vetorial e do reranker; se não, vale o ranking vetorial puro
A implantação padrão na nuvem roda hoje sem reranker; o adaptador Jina está pronto e basta ativá-lo.
Escopo por pasta
Seção intitulada “Escopo por pasta”Restringir a busca a uma pasta é possível pela API. Passe um parâmetro de
consulta folder=<path>. Uma sintaxe de consulta na caixa de busca, como
folder:work/, está no roadmap, mas ainda não foi ligada na interface.
Quando a busca semântica rende menos
Seção intitulada “Quando a busca semântica rende menos”- O cofre é muito pequeno (< 20 notas). Há menos embeddings para comparar; os resultados tendem a ser ruidosos até o cofre crescer
- Notas recém-importadas. O embedding roda de forma assíncrona pelo Oban; notas recém-escritas podem levar alguns segundos para aparecer nos resultados
- Jargão muito específico. A similaridade semântica funciona melhor para conceitos. Para identificadores exatos (o nome de uma função, um código de erro), a busca por palavra-chave e a híbrida (lexical + vetorial) são mais adequadas. As duas já estão no ar no backend, e a exposição na interface do app web ainda vai chegar. Enquanto isso, a busca local do Obsidian cobre identificadores exatos.