검색
Engram은 노트 내용을 시맨틱 검색용으로 색인합니다. 표현이 달라도 질의와 비슷한 의미를 가진 노트를 찾아 줍니다. 정확 일치 검색도 지원하지만, 어디서 실행되는지는 범위에 따라 다릅니다.
Engram이 검색하는 방식
섹션 제목: “Engram이 검색하는 방식”- 보관함 전체에 대한 시맨틱 검색. 모든 노트의 임베딩에 대한 벡터 유사도 검색입니다. 글자 그대로의 텍스트뿐 아니라 관련된 생각을 찾습니다. 현재 웹 앱의 검색 패널에서 실행되는 것이 이것입니다.
- 키워드 및 하이브리드 검색. 백엔드는 암호화에 안전한 키워드(어휘) 검색과, 어휘 결과와 벡터 결과를 합치는 하이브리드 모드(아래 참고)용으로도 노트를 색인합니다. 이는 백엔드에서 제공되며, 웹 앱의 검색 패널에는 아직 모드 전환이 없어 지금은 시맨틱 질의를 보냅니다.
- 열린 노트 안의 정확 일치.
Ctrl/Cmd+F와 에디터의 찾기/바꾸기는 일반 텍스트 에디터처럼 현재 세션에서 복호화된 노트에 대해 작동합니다.
문자 그대로 / 정규식 검색은요?
섹션 제목: “문자 그대로 / 정규식 검색은요?”Engram은 보관함 전체에 대한 키워드(어휘) 검색을 지원하며, 저장 시
암호화를 깨뜨리지 않고 이를 수행합니다. 평문을 훑는 대신, 백엔드는
청크마다 HMAC(your vault key, token)을 키로 하는 희소 벡터를 색인합니다.
그래서 서버는 읽을 수 있는 노트 텍스트를 한 번도 갖지 않은 채 검색어를
색인과 대조할 수 있습니다. 키워드 검색, 의미(벡터) 검색, 그리고 어휘 검색과
벡터 검색을 서버에서 역순위 결합(reciprocal-rank fusion)으로 합치는
하이브리드 검색이 모두 백엔드에서 지원됩니다.
다만 색인은 문자가 아니라 토큰 단위이므로, 원문 텍스트에 대한 진짜
부분 문자열/정규식 검색은 여전히 서버에서 할 수 없습니다. 정규식, 대소문자
구분, 경로 필터가 필요한 리터럴 검색에는 디스크의 .md 파일을 대상으로
동작하는 Obsidian의 로컬 검색 창을 쓰세요. 열려 있는 노트 안에서 찾을 때는
편집기의 Ctrl/Cmd+F도 사용할 수 있습니다.
Engram과 Obsidian 검색은 서로 보완적입니다. 클라우드에서는 시맨틱, 키워드, 하이브리드, 디스크에서는 전체 정규식 / 대소문자 구분 / 경로 필터 문자 그대로 검색입니다. Obsidian의 로컬 검색 패널은 Engram이 동기화하는 바로 그 보관함에 대해 실행됩니다.
검색할 수 있는 곳
섹션 제목: “검색할 수 있는 곳”- 웹 앱 검색 패널(검색 레일): 현재는 시맨틱 질의
- Obsidian 플러그인은 웹 앱과 같은 백엔드에 대해 검색을 실행합니다
- Obsidian 검색 패널: 디스크에 있는 보관함에 대한 로컬 정규식 / 대소문자 구분 / 경로 문자 그대로 검색
정규식 패턴이나 경로로 범위를 좁힌 문자 그대로 검색은 Obsidian의 로컬 검색을 이용하세요.
순위가 매겨지는 방식
섹션 제목: “순위가 매겨지는 방식”- 질의가 임베딩됩니다(질의 모델은 문서 모델과 비대칭이며, 색인이 아니라 검색에 맞춰 조정되어 있습니다)
- Qdrant가 이진 양자화 + 재점수화로 상위 K개의 벡터 일치 항목을 반환합니다
- 리랭커가 설정되어 있으면(백엔드의
RERANKER_BACKEND=jina+JINA_URL) 후보가 벡터 점수와 리랭커 점수를 40/60으로 섞어 재정렬됩니다. 설정되어 있지 않으면 원래의 벡터 순위를 씁니다
기본 클라우드 배포는 현재 리랭커 없이 실행됩니다. Jina 어댑터는 출시되어 있어 켤 수 있는 상태입니다.
폴더 범위 지정
섹션 제목: “폴더 범위 지정”폴더로 검색을 제한하는 것은 API를 통해 지원됩니다. folder=<path>
쿼리 매개변수를 넘기세요. folder:work/ 같은 검색창 질의 구문은 로드맵에
있으며 UI에는 아직 연결되지 않았습니다.
시맨틱 검색이 기대에 못 미칠 때
섹션 제목: “시맨틱 검색이 기대에 못 미칠 때”- 보관함이 매우 작을 때(노트 20개 미만). 비교할 임베딩이 적어서 보관함이 커지기 전까지는 결과가 다소 잡음이 많습니다
- 방금 가져온 노트. 임베딩은 Oban을 통해 비동기로 실행되므로, 새로 쓴 노트가 결과에 나타나기까지 몇 초가 걸릴 수 있습니다
- 매우 특수한 전문 용어. 시맨틱 유사도는 개념에 가장 적합합니다. 정확한 식별자(함수 이름, 오류 코드)에는 키워드와 하이브리드(어휘 + 벡터) 검색이 더 적합합니다. 둘 다 백엔드에서는 사용할 수 있고, 웹 앱 UI 노출은 아직 남아 있습니다. 그동안은 Obsidian의 로컬 검색으로 정확한 식별자를 찾을 수 있습니다.