Use case

One search backbone for every internal tool.

Policies, wikis, contracts, and tickets each have their own search box, and none of them agree. Give every tool the same retrieval service, and every answer a citation.

Collections per team Hybrid, then reranked Answers cite the page Runs on your database

Everyone rebuilt search. Nobody trusts theirs.

The enterprise search appliance died, the cloud replacements want the corpus uploaded, and in the vacuum every team duct-taped its own retrieval. The result is five indexes, five behaviors, zero citations.

  • Fragmented indexes fragment truth. When HR, engineering, and legal each search differently, the same question gets different answers depending on which tool asked it.
  • Uploading the corpus is the blocker. The documents worth searching, contracts, policies, incident reports, are the ones that cannot leave; hosted search inverts the risk model.
  • Keyword-only misses meaning; vector-only misses names. Real questions need hybrid retrieval: lexical for identifiers and clauses, semantic for intent, fused and reranked.
  • Uncited answers do not get believed. An internal answer without the document and page behind it creates a second question instead of resolving the first.
  • New stateful systems get vetoed. A search platform that demands its own exotic datastore fights IT; one that runs on the database estate you already operate, or fully self-contained, joins it.

Connect, index, retrieve, answer.

One service owns the pipeline; every internal tool just calls it.

01

Connect

Each department's corpus becomes a collection with its own access grants.

02

Index

Parsing and OCR feed chunking and embeddings, stored in your database.

03

Retrieve

Lexical and semantic candidates fuse, then rerank, per query.

04

Answer

Grounded answers cite document and page, with groundedness scored.

One engine, two ways to deploy it.

The org-wide backbone is a service; a single application's search can stay in process.

Embed it

LM-Kit.NET: one app, its own index

A single application that needs search over its own documents embeds the built-in vector store and the same retrieval pipeline, no service to stand up.

Embed LM-Kit.NET

What makes it the backbone.

The properties that let one service carry every team's search.

Cited

Answers people can check

Document, page, and passage behind every answer, a groundedness score, and unsupported claims flagged rather than smoothed over.

Operable

Your database, your backups

Full text on PostgreSQL, built-in SQLite, MySQL, or SQL Server; vectors beside it or in Qdrant. Search state lives where your DBAs have runbooks, or fully local with nothing to provision.

Governed

Access mirrors the org

Collections carry grants, keys see what they were given, and every query is attributable; legal's corpus does not leak into the intranet bot.

Two calls, every tool served.

Ranked results for search boxes; grounded answers for assistants. Both scoped by the caller's grants.

The intranet assistant's one call: an answer with its evidence attached.

terminal
curl http://your-server:5189/lmkit/v1/search/answer \
  -H "Authorization: Bearer intranet-***" \
  -H "Content-Type: application/json" \
  -d '{"clusterId":"internal","tenantId":"<org-tenant-id>",
       "collectionId":"<hr-policies-id>",
       "question":"How much parental leave after 3 years of service?"}'

# answer: "16 weeks at full pay..."  citations: leave-policy.pdf p.7

Frequently asked questions.

How is this different from the private-knowledge assistant use case?

This is the layer underneath it. The knowledge assistant is one consumer; the backbone is the governed search service that any number of internal tools query, each within its own collections and grants, so search behaves the same everywhere.

What keeps answers from being invented?

Grounding is enforced, not hoped for. Answers are generated from retrieved passages, cite document and page, carry a groundedness score, and unsupported claims are flagged; when retrieval finds nothing relevant, no-answer is the honest response.

What infrastructure does it need?

As much or as little as you choose. The built-in SQLite store with its local vector index needs nothing external; PostgreSQL carries full text and vectors (pgvector) in one database; MySQL and SQL Server carry full text with vectors in Qdrant, and PostgreSQL or SQLite can pair with Qdrant too. Each cluster picks its own combination, and the service scales horizontally, any node serving any request.

How does access control work across departments?

Collections carry grants and API keys see only what they were given, enforced by the service on every storage engine, with row-level security adding a database-level layer on PostgreSQL. Legal's contracts and HR's files can share the backbone without sharing an audience.

Search, unified

Five search boxes. One backbone.