Skip to main content

Overview

Glyph uses SQLite with FTS5 (Full-Text Search) to index all notes for fast searching. The index is stored in .glyph/index.db and includes:
  • Note content (full-text searchable)
  • Frontmatter properties (tags, custom fields)
  • Internal links (wikilinks + markdown links)
  • Task items (with due dates, scheduled dates)
The index is derived data. It can be rebuilt from source files at any time via index_rebuild command.

Schema

Notes Table (FTS5)

src-tauri/src/index/schema.rs

Tags Table

Tasks Table

Indexing Process

Initial Index Build

When a space is opened:
1

Create/open database

src-tauri/src/index/db.rs
2

Scan notes directory

src-tauri/src/index/indexer.rs
3

Parse each note

Incremental Updates

The filesystem watcher triggers re-indexing on file changes:
src-tauri/src/space/watcher.rs

Search Implementation

src-tauri/src/index/search_hybrid.rs
src-tauri/src/index/search_advanced.rs

Tag Indexing

Extracting Tags

Tags come from two sources:
  1. Frontmatter: tags: [research, ai]
  2. Inline hashtags: #research #ai
src-tauri/src/index/tags.rs

Tag Queries

src-tauri/src/index/tags.rs
src-tauri/src/index/links.rs

Task Indexing

Parsing Tasks

src-tauri/src/index/tasks/parse.rs

Task Queries

src-tauri/src/index/tasks/store.rs

Performance Optimization

FTS5 Optimization

Batch Inserts

Next Steps

Storage

Content-addressed file storage

Commands

Learn IPC communication