Skip to content
How much to read

Knowledge base

projects / semantic-search

Semantic Search overview

A local-first hybrid search engine over PDF textbooks and a retrieval evaluation workbench, built as the bench the other two projects get measured on.

overview · current · updated 2026-09-16 · Semantic Search case study

Semantic Search is internal tooling: a fully local, offline-capable hybrid search engine over a library of PDF textbooks, paired with a retrieval evaluation workbench. It started from a real need, that textbooks cannot be searched by a remembered idea rather than a remembered word. It came out of no employer involvement and no client work.

What it does

Two things in one binary. A search product: ask a natural language question, get passages retrieved by hybrid search (semantic plus keyword), cited to the exact book and page, with a streamed, grounded answer. And a retrieval evaluation workbench: every retrieval knob exposed for tuning, plus a benchmark runner that replays a saved question set through a chosen model stack and records every timing to a comparable table.

Position in the portfolio

It is not a product with users. It is the bench: whether Clarity's narration can run off local hardware instead of a cloud API, and whether EaseMySemester can answer a question with a citation on a CPU-only box, both get evaluated here. It is not a ship or no-ship gate for either project.

Core thesis

A retrieval system that cannot be measured is a demo, not a product. The stack (hybrid search, reranking, fusion) is commodity; the evaluation loop is the differentiator. See the measurement loop.

Stack, briefly

Local embeddings via fastembed (ONNX, CPU), SQLite for both keyword (FTS5/BM25) and vector (sqlite-vec) search, weighted Reciprocal Rank Fusion, and generation through local Ollama or any OpenAI-compatible cloud provider. Local-first with cloud as a configurable comparison target, not "no cloud, no account".

Status

Deployed on a rented public server (the author's own hardware), not linked from the portfolio as a live demo. See known gaps for the deployment's open issues, the concurrency audit for the strongest engineering artifact, and numbers for defensible figures.

Pages

This page was written by a model from my own repositories and checked by a second one against the same sources. I did not write it, and no version of it was approved by me before it went up. How that works, and where it can still be wrong.