PROJECT INSIGHT ·

The First Question to My Own Archive

Instead of guessing search terms, I ask my archive an ordinary question — and receive an answer together with the letter it came from.

CONCEPT · IMPLEMENTATIONOliver Röschner
READING TIME5 minutes
AREATECHNOLOGY
A highlighted contract paragraph is visibly connected to the answer it supports and its page reference.
AI-GENERATED ARTICLE IMAGE | OPERUS

Full-text search was fast and dependable, but it required me to know the words used in the letter. What I really wanted was something else: to ask a question as I would ask another person — and receive an answer rather than a list of results.

*AI-generated illustration: A natural-language question leads to a sourced answer that points back to the exact passage in the contract.*

How Far in Advance Must I Cancel My Electricity Contract?

This question demonstrates what full-text search is missing. The contract does not say “how far in advance”. It says “notice period”, perhaps “six weeks before the end of the contract term”, somewhere on page two of the terms and conditions. The words in my question and those in the contract have almost nothing in common.

To answer it, Operus Search has to connect several things:

1. understand what the question is about; 2. find the relevant passage in my letters even when it uses different wording; 3. turn that passage into a concise answer; 4. show which letter the answer came from.

What matters is what Operus Search does not do: it does not calculate a deadline here. It quotes what the contract says and shows me the passage. I decide whether I am still in time.

An AI answer only becomes useful to me when I can see which of my letters it came from.

Searching by Meaning

For meaning-based search, Operus Search divides each letter into short sections. A local AI model translates every section into a long series of numbers — a kind of fingerprint of its content. Sections dealing with similar subjects receive similar fingerprints even when they use completely different words.

My question is turned into the same kind of fingerprint. Operus Search then finds the sections whose fingerprints are most similar. This is how “how far in advance must I cancel” reaches the paragraph about the notice period.

The model is called bge-m3 and, like everything else, runs on my own hardware. The fingerprints live in the same database as the rest of the index and can be compared quickly there.

Meaning-based search does not replace full-text search. Both run in parallel and their result lists are combined. A document may rank highly because it contains the exact words, because its meaning fits — or both.

Search pathStrength
full textnames, numbers and exact terms
meaningdifferently worded questions and related passages
both togetherthe best of both without trusting either blindly

Meaning-based search will always find something that is “most similar”, even when nothing truly fits. Matches found only through meaning must therefore meet a minimum similarity. Otherwise they are not shown at all.

Search First, Then Answer

The order is crucial. Operus Search does not simply ask a language model and hope for the best. It first finds relevant passages in my letters. Only then does the local language model — Qwen3 in my case — receive those exact extracts with the instruction to answer exclusively from them.

question
   ↓
full-text and meaning-based search
   ↓
relevant passages from my letters
   ↓
local language model
   ↓
answer with sources

If search finds nothing useful, the language model is not asked at all. Operus Search responds that it found nothing about the subject in my documents. The model therefore has no opportunity to fill the gap with general knowledge or a plausible-sounding assumption.

The Answer Became the New Starting Point

The moment Operus Search answered my first real question correctly was genuinely breathtaking. A technical idea suddenly became something that understood my own archive. I immediately asked the next question — and then another. Along the way, it revealed things I had not expected: invoices were recognised and added correctly, for example, but were not always grouped sensibly yet. That did not slow me down. Quite the opposite: every correct answer showed what was already possible, and every mistake showed what I needed to work on next. That first success became the real motivation to keep developing Operus Search.

It has changed how I use the archive. I can still search for a term and open the letter, but I can also ask directly about a deadline, a deductible or a date. The answer arrives with its evidence, and one click opens the original.

That is ideal when the answer is contained in a single letter. It becomes more difficult when the answer is spread across many of them. What did a renovation cost in total? Where did I spend the most last year? A handful of similar-sounding passages sent to a language model are not enough. Every relevant invoice must be found and every amount added correctly.

Next chapterWhen the answer is spread across many letters — why AI may understand the question but should not do the arithmetic itself. Part 7