HWPX · HWP · PDF · DOCX · XLSX · PPTX · 이미지 수천 건의 본문을 1초 안에. 파일명을 몰라도, 열어보지 않아도. AI 기능을 끄면 네트워크 트래픽 제로 — 폐쇄망 PC에서 그대로 동작한다.
쿼리가 바뀌면 검색 모드도 바뀌고, 결과 카드도 바뀐다. 공무원 실무 시나리오 4개를 순환: 연차 사용 조건 · 2026년 예산 집행 잔액 · 건축허가 민원 반려 사유 · HWP 파싱 엔진 벤치마크.
SQLite FTS5 키워드와 usearch HNSW 벡터 검색을 Reciprocal Rank Fusion으로 병합. 오타·유의어에 강하고, 정확한 매치도 놓치지 않는다. 기본값.
Lindera 2.0 한국어 형태소 분석기가 들어간 순수 FTS5. "정확한 단어"로 좁히고 싶을 때. 어절 띄어쓰기·조사까지 처리.
의미 기반. "퇴직금 계산" 검색으로 "임금채권" 문서가 뜬다. KoSimCSE-roberta ONNX가 768차원 임베딩을 로컬에서 뽑는다.
Everything 스타일. 인덱싱이 끝나기 전에도 즉시 쓸 수 있다. 파일 트리를 인메모리 캐시로 유지.
| 형식 | 확장자 | 비고 |
|---|---|---|
| 한글 | .hwpx .hwp | kordoc 엔진 내장 (배포용 DRM 포함) |
| 워드 | .docx | 스타일 heading · 각주 · 하이퍼링크 |
| 파워포인트 | .pptx | 슬라이드별 본문 + 노트 |
| 엑셀 | .xlsx .xls | 시트 · 행 위치까지 추적 |
.pdf | 스캔 PDF는 PaddleOCR ONNX 자동 적용 | |
| 이미지 | .jpg .png .bmp .tiff | OCR로 텍스트 추출 |
| 텍스트 | .txt .md | EUC-KR/CP949 자동 감지 |
Frontend는 React 19 + TypeScript 5.9 + Tailwind CSS 4. Backend는 Rust 2021 + Tauri 2.10. Parsers · Indexer · Search Engine이 레이어로 분리되어 있고, 저장소는 SQLite FTS5 + usearch HNSW + ONNX Runtime.
메모리·바이너리 크기에서 Electron을 압도. MSI 하나로 배포 — WebView2, VC++ 런타임까지 번들. 관리자 권한 UAC 1회로 설치 끝.
한국어 검색의 기본. FTS5 토크나이저로 연결해 "사용자의"에서 "사용자"로 어절 분해, 조사·어미 처리.
ONNX Runtime으로 로컬 임베딩. 한국어 Sentence-BERT 변형 — 법률·공공 도메인 질의에서 의미 유사도 안정적.
스캔 PDF와 이미지도 자동으로 텍스트화. 완전 오프라인, 외부 API 필요 없음. 한국어·영어·숫자 혼합 처리.
파일을 추가·수정·삭제하면 인덱스가 자동 반영. 수동 재인덱싱 없이 항상 최신 상태. FTS 먼저 완료 → 벡터는 백그라운드.
폐쇄망·내부망 환경에서 그대로. 원본 파일은 어떤 경우에도 복사되지 않고, API 키는 사용자 PC 로컬에만 저장. 서버를 거치지 않는다.
| 기능 | 데이터 위치 | 외부 전송 |
|---|---|---|
| 문서 파싱 · 인덱싱 | 로컬 SQLite | 없음 |
| 키워드 · 시맨틱 · 하이브리드 검색 | 로컬 FTS5 + 벡터 DB | 없음 |
| 임베딩 (KoSimCSE) | 로컬 ONNX 모델 | 없음 |
| OCR (PaddleOCR) | 로컬 ONNX 모델 | 없음 |
| 파일명 검색 | 로컬 인메모리 캐시 | 없음 |
| AI 질의응답 (선택) | Gemini API | 질문 + 관련 청크만 |
| AI 요약 (온라인, 선택) | Gemini API | 문서 텍스트 |
| AI 요약 (오프라인) | 로컬 TextRank | 없음 |
인덱스만 생성. 문서 원본은 한 바이트도 외부로 나가지 않는다. 폐쇄망 감사에도 통과.
설정에서 AI를 끄면 네트워크 경로가 닫힌다. 순수 로컬 검색 도구로 동작. 자동 업데이트도 끌 수 있음.
Gemini API 키는 사용자 PC 로컬에만. 서버 DB에 올라가지 않고, 호출 비용은 본인 Google 계정에서.