PROJECT CASE STUDY

02 / 03

mem.

Find files by what you remember, not what they’re named.

BUILT WITH

  • Go
  • SQLite FTS5
  • Bubble Tea
  • OCR

SYSTEM OVERVIEW

SCANFilesystem
EXTRACTPDF · Office · OCR
INDEXSQLite FTS5
RANKParsed query · BM25
Simplified from the project’s documented architecture and behavior.

THE CHALLENGE

People remember what a file said, not what it was called.

A filename like “l.pdf” gives little help when someone remembers only that the document discussed Linux process scheduling. mem indexes local document text and lets the search explain how it interpreted the request.

01 / INDEXING

Keep the source text and search index in sync.

The scanner extracts text from PDFs and common office formats, then stores searchable terms in SQLite FTS5. The index is external-content: it stores the inverted word index rather than a second copy of each document. SQL triggers keep it synchronized with the source rows.

Incremental scans skip files whose size and modification time have not changed. In the documented 46-file sample, a second scan took 4 ms compared with 800 ms for the first.

02 / QUERYING

Turn natural phrasing into explicit constraints.

Before SQLite sees a query, mem removes stop words, extracts file-type and date hints, and lightly singularizes terms. The interface shows the parsed keywords and constraints so people can correct a mistaken interpretation.

Results use BM25 with stronger weighting for filename matches. The displayed confidence is rank-normalized relative to the current results because BM25 scores do not have a meaningful absolute percentage scale.

03 / TRUST

An honest miss beats a confident wrong answer.

When nothing matches, mem reports the miss and the constraints that excluded possible files. It does not fill the page with unrelated recent documents. This keeps the result list useful even when the search fails.

OCR is optional and uses Tesseract when installed. A quality gate rejects noisy output; the tool targets printed text and does not identify what an image depicts or reliably read handwriting.

OUTCOMES

What the build demonstrates

4 ms

Second scan of a documented 46-file sample

Local-first

No network service or LLM required for search

Preview-first

Organize plans do not write unless explicitly applied

VALIDATION & SCOPE

What’s verified, and what remains.

  • Search, indexing, query parsing, ranking, OCR quality gating, and terminal UI behavior are covered by the project’s documented tests.
  • OCR depends on optional Tesseract. Scanned PDFs are not covered by the extraction pipeline.
  • Search is deterministic full-text retrieval; it does not understand image subjects or use an LLM.