Search
Basalt provides desktop-class search across notes, titles, and frontmatter. Built on native Rust engines—Tantivy for full-text BM25 index searching and Nucleo for instant fuzzy matching—queries return in under 150ms even across vaults exceeding 25,000 notes.
Two Ways to Search
1. Quick Switcher (Ctrl+O / Cmd+O)
A lightweight modal for rapid file opening and title jumping:
- Uses the Nucleo fuzzy matcher.
- Matches file paths, stems, and aliases instantly as you type.
- Highlights matching character sequences.
2. Full-Text Search View (Ctrl+Shift+F / Cmd+Shift+F)
A dedicated search panel in the side dock for deep vault querying:
- Uses the Tantivy search engine.
- Searches both document metadata and markdown body text.
- Displays expandable note previews with matching search terms highlighted in context.
Query Syntax & Modifiers
The Search View supports flexible search operators:
Terms and Exact Phrases
apple banana— Finds notes containing both "apple" AND "banana"."deep work"— Exact phrase search (words must appear contiguously).productivity -social— Finds "productivity" while excluding notes containing "social".
Prefix & Wildcard Matching
arch*— Matches words starting with "arch" (e.g.architecture,archive).
Path & Directory Scoping
path:Projects/— Restricts results to notes inside theProjects/folder.file:2026— Matches notes whose filename contains2026.
Tag Filters
tag:#work— Filters for notes with the#worktag (in frontmatter or body).
Background Indexing & Performance
In many Electron-based apps, full-text search indexing consumes heavy CPU during startup or file editing.
In Basalt (ADR-043):
- Decoupled Thread Pool: Tantivy index commits run in low-priority background OS threads.
- Incremental Indexing: When you edit or save a note, only that document's index postings are updated.
- Zero Boot Blocking: The app boots immediately using cached metadata; search indexes update asynchronously in the background.