Skip to main content

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.


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 the Projects/ folder.
  • file:2026 — Matches notes whose filename contains 2026.

Tag Filters​

  • tag:#work — Filters for notes with the #work tag (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.