Relard Digital Solutions
Enclosure to the letter from Sebastian Relard
Enclosure 2
Finding documents by their content
For a Düsseldorf agency · Prototype for a proposal
You type what you’re looking for, say the invoice for the autumn flyers, and the search finds the document by its content, including scanned receipts. The files stay where they are.
The task
The agency keeps its projects in folders on its own server. In our conversation it named three problems: the search mostly found only file names, its index kept failing, and new staff didn’t know the numbering scheme of the project folders.
What was needed was a search that understands what you mean, without anyone moving or renaming files or transferring them into a new program.
An example
The question asks about ‘fast internet’; the email says ‘fibre optic’. So the keyword search finds nothing, while the search by meaning finds the email.
How it works
- The search reads the existing folders directly. Nothing is moved or renamed.
- It extracts the text from PDF, Word and text files. Text recognition reads scanned pages.
- Every query searches in two ways: for the exact words and for the meaning. Exact numbers, such as an invoice number, come first.
- Each document appears as one result; versions such as ‘_final’ or ‘(1)’ are grouped together.
Status and limits
- Prototype
- Developed in two days as advance work for a proposal and shown in a client meeting on 6 October 2026. No pilot has been commissioned so far.
- Tested
- On a deliberately messy test server with 487 invented files, the right document came first in 22 of 25 test searches; keyword search alone managed 17. I created the files and the test searches myself.
- Data
- The search index is a file next to the search. For text recognition and meaning, text extracts and scanned pages go to AI models at Mittwald, a hosting provider in Germany. Whether the search would run on an office computer or at Mittwald in day-to-day use is still open.
- Outages
- If the AI service can’t be reached, the keyword search keeps working.
Technical details
Python 3.12 and FastAPI. The index lives in SQLite, with full-text search for the words and vectors for the meaning. The models run at Mittwald: Qwen3-Embedding-8B for meaning, Qwen3-VL-Reranker-2B for the ranking, GLM-OCR for scanned pages. 64 tests without network access; the evaluation runs against 25 fixed test searches.
There are also two experiments in the prototype: a folder that gathers matching documents from a request such as ‘quote, minutes and invoice for project X’, and an agent that searches and reads by itself, within fixed limits and with quotations checked word for word.
- Python
- FastAPI
- SQLite FTS5
- Embeddings
- Reranker
- OCR
Is there a similar step in your own work? Then let’s talk about it for 30 minutes, free and without obligation.