Recherche
Engram indexe le contenu des notes pour la recherche sémantique, qui trouve les notes dont le sens ressemble à ta requête, même quand la formulation diffère. La recherche par correspondance exacte est aussi prise en charge, mais l’endroit où elle s’exécute dépend de la portée.
Comment Engram recherche
Section intitulée « Comment Engram recherche »- Recherche sémantique sur tout le coffre. Similarité vectorielle sur les embeddings de chaque note. Trouve des idées liées, pas seulement le texte littéral. C’est ce qui s’exécute aujourd’hui depuis le panneau de recherche de l’application web.
- Recherche par mots-clés et hybride. Le backend indexe aussi les notes pour une recherche par mots-clés (lexicale) compatible avec le chiffrement et pour un mode hybride qui fusionne les résultats lexicaux et vectoriels (voir plus bas). Ces modes sont livrés dans le backend ; le panneau de recherche de l’application web n’expose pas encore de sélecteur de mode, il émet donc des requêtes sémantiques pour l’instant.
- Correspondance exacte dans une note ouverte.
Ctrl/Cmd+Fet le Rechercher/Remplacer de l’éditeur fonctionnent sur la note déchiffrée dans ta session courante, comme dans n’importe quel éditeur de texte.
Et la recherche littérale / par regex ?
Section intitulée « Et la recherche littérale / par regex ? »Engram prend en charge la recherche par mots-clés (lexicale) sur
tout ton coffre, et ce sans casser le chiffrement au repos. Au lieu
d’analyser du texte en clair, le backend indexe, pour chaque fragment,
un vecteur creux indexé par HMAC(your vault key, token), de sorte que
le serveur peut faire correspondre les termes d’une requête à l’index
sans jamais détenir de texte de note lisible. Les modes mots-clés,
sémantique (vectoriel) et hybride (lexical + vectoriel fusionnés
côté serveur par fusion de rangs réciproques) sont tous disponibles
dans le backend.
Cela signifie qu’une vraie recherche de sous-chaîne ou par expression
régulière sur le texte brut reste impossible côté serveur (l’index porte
sur des tokens, pas sur des caractères). Pour une recherche littérale
par regex, sensible à la casse ou filtrée par chemin, le volet de
recherche local d’Obsidian (qui parcourt tes fichiers .md sur disque)
reste l’outil à utiliser. Ctrl/Cmd+F dans l’éditeur fonctionne aussi
pour chercher dans une note ouverte.
La recherche d’Engram et celle d’Obsidian sont complémentaires : sémantique, par mots-clés et hybride dans le cloud ; recherche littérale complète par regex / sensible à la casse / filtrée par chemin sur le disque. Le volet de recherche local d’Obsidian s’exécute sur le même coffre qu’Engram synchronise.
D’où lancer une recherche
Section intitulée « D’où lancer une recherche »- Panneau de recherche de l’application web (le rail de recherche) : requêtes sémantiques aujourd’hui
- Le plugin Obsidian lance la recherche sur le même backend que l’application web
- Le volet de recherche d’Obsidian pour la recherche littérale locale par regex / sensible à la casse / par chemin sur le coffre présent sur le disque
Pour un motif regex ou une correspondance littérale limitée à un chemin, passe par la recherche locale d’Obsidian.
Comment fonctionne le classement
Section intitulée « Comment fonctionne le classement »- Ta requête est convertie en embedding (le modèle de requête est asymétrique par rapport au modèle de documents, réglé pour la recherche plutôt que pour l’indexation)
- Qdrant renvoie les K meilleures correspondances vectorielles avec quantification binaire + rescore
- Si un reranker est configuré (
RERANKER_BACKEND=jina+JINA_URLsur le backend), les candidats sont réordonnés avec un mélange 40/60 des scores vectoriel et du reranker ; sinon, le classement vectoriel brut est utilisé
Le déploiement cloud par défaut fonctionne aujourd’hui sans reranker ; l’adaptateur Jina est livré et prêt à être activé.
Restreindre à un dossier
Section intitulée « Restreindre à un dossier »Restreindre la recherche à un dossier est possible via l’API. Passe un
paramètre de requête folder=<path>. Une syntaxe de requête dans la
barre de recherche comme folder:work/ est prévue dans la feuille de
route, pas encore branchée dans l’interface.
Quand la recherche sémantique est moins performante
Section intitulée « Quand la recherche sémantique est moins performante »- Le coffre est très petit (< 20 notes). Moins d’embeddings à comparer ; les résultats sont plutôt bruités tant que ton coffre ne grandit pas
- Notes récemment importées. L’embedding s’exécute de façon asynchrone via Oban ; les notes fraîchement écrites peuvent mettre quelques secondes à apparaître dans les résultats
- Jargon très spécifique. La similarité sémantique est meilleure pour les concepts. Pour des identifiants exacts (un nom de fonction, un code d’erreur), la recherche par mots-clés et hybride (lexicale + vectorielle) convient mieux. Les deux sont actives dans le backend, l’exposition dans l’interface web restant à venir. En attendant, la recherche locale d’Obsidian couvre les identifiants exacts.