ServicesDocument search

Document search

Answers drawn from your own manuals, tickets, contracts and databases, with the source next to every answer.

Good forTeams that keep asking questions their documents already answer.

Often paired withLLM integrations, and evals and monitoring.

Start a project

What it is

The model answers from your documents, not from memory, and shows where each answer came from.

This is often called RAG, short for retrieval-augmented generation. A question comes in. We search your documents for the passages that answer it. The model writes the answer from those passages only, and links to them.

When the passages do not hold the answer, a good system says so. “I could not find this in the documents” is a feature, not a failure, and we test for it as carefully as for the right answers.

Typical uses

Places where the answer exists, but finding it takes too long.

  • Support teams searching manuals, past tickets and known issues
  • Staff questions about policies, benefits and procedures
  • Sales teams answering security questionnaires and tenders from earlier answers
  • Engineers searching specifications, runbooks and incident notes
  • Customers searching your product documentation in their own words
  • Legal and finance teams finding clauses across many contracts

Most of these start as an internal tool for one team. Once the answers hold up, the same index often serves customers too.

What you get

A search your people can check, and an index that stays current.

The pipeline

Connectors to your sources, document reading and splitting, embeddings, the index, and sync jobs that keep it current.

The search

Keyword and meaning search combined, re-ranking, and filters by product, date, language or team.

The answers

Answers with citations, a clear “not found” when the documents are silent, and a way for users to flag a bad answer.

The access rules

Each user gets answers only from documents they are allowed to open. We carry your permissions into the index and test them.

The catalogue

A library card catalogue was search over documents, done by hand.

Its quality came from the cards: what was written on them, how they were filed and how often they were updated. The same is true today. Good answers start with how documents are read, split and kept current.

Sources shown

Every answer shows its sources, and every source shows when it was last read. When nothing relevant is found, the system says so instead of guessing.

Your team also gets a view of the index itself, so a failed sync is fixed before anyone gets an old answer.

Product support assistantAnswer

Asked in a product support assistantWhich ports does the gateway need open?

Ports 443 and 8443, both TCP.1 Port 8443 is only needed if you use the remote admin console.2

1 Installation guide, 3.1 Network2 Release notes, version 4.2
Index4 sources

Sources in the index

SourceDocumentsLast readStatus
Product manuals312Today, 06:00Current
Closed support tickets18,450Today, 06:00Current
Release notes96YesterdayCurrent
Shared drive, Sales1,2043 days agoSync failed

An example. The product, the documents and the numbers are made up for this page.

What can go wrong

Document search fails quietly. A wrong passage still produces a fluent answer. These are the failures we look for first.

How we measure it

The wrong passage

Search by meaning misses exact terms such as product codes and error numbers. We combine it with keyword search, re-rank the results, and test retrieval on its own.

  • Hybrid search
  • Re-ranking
  • Retrieval tests

A made-up answer

The model fills a gap with something plausible. We have it answer only from the passages, check each sentence against its source, and give it a clear way to say “not found”.

  • Answers from passages only
  • Sentence checks
  • A not-found path

Old documents

The index is older than the documents. We sync on a schedule that suits each source, detect changes, and show when each source was last read.

  • Sync jobs
  • Change detection
  • Last-read dates

The wrong reader

A user gets an answer from a document they may not open. We carry permissions into the index, filter at query time, and test it with real accounts.

  • Permissions in the index
  • Query-time filters
  • Access tests

Hard documents

Scans, tables, slides and duplicates confuse a simple pipeline. We handle each document type on purpose: text recognition, table extraction and de-duplication.

  • Text recognition
  • Table extraction
  • De-duplication

What we measure

Document search has two halves, and we measure both. Did we find the right passages? Did the answer use them faithfully?

Each change to the pipeline, the prompt or the model is scored on the same questions, so you can see what it did.

Finding

Right passage among the top resultsper question

Questions with no good passageflagged

Answering

Every claim backed by a sourcechecked

Correct “not found” repliescounted

Answers users marked wrongreviewed weekly

Running

Time to the first wordper request

Cost per answerper day

Age of the indexper source

A score for each half, on every changein the dashboard

Questions

All questions

How many documents can it handle? From a few hundred to millions. The design differs with the size, so we look at your real collection before we choose the index and the search method.

Which file types work? PDF, Word, HTML, wiki pages, tickets, spreadsheets and database records. Scanned pages need text recognition, and tables and images take extra work, which we plan for up front.

Do we need a vector database? Not always. PostgreSQL with the pgvector extension is enough for many collections, and you may already run it. For larger or busier ones we use a dedicated index such as Qdrant.

Can it answer across languages? Yes. A question in one language can find documents written in another, and the answer comes back in the language of the question. We test the language pairs you need.

How current are the answers? As current as the last sync of each source. We set the schedule per source, from every few minutes for tickets to once a day for manuals, and show the date next to each answer.

Can it still be wrong? Yes, sometimes. That is why every answer shows its sources, so people can check, and why we measure how often it is wrong and fix the causes.

Have documents to search?

Tell us what your documents are and who asks the questions. We will tell you what a first version could answer.

A few lines are enough. We reply within one working day.

Start a project