DIN 0815/S · PS-09
Search
Cross-entity keyword and faceted search over every module’s records, on SQLite FTS5.
Modules index their records — products, documents, contacts, tickets — and query them with filters through one API instead of each hand-rolling LIKE queries. Full-text search is backed by SQLite FTS5, bundled with the database driver, so there is no external search engine to operate. Collections namespace documents by type and a tenant scopes them. Arbitrary key/value facets filter the result set and come back as counts over the matches. Re-indexing a document replaces the previous one. This is lexical search; it complements PS-04’s semantic RAG rather than duplicating it.
Responsibilities
- Full-text search on SQLite FTS5, BM25-ranked, with prefix matching
- Collections and tenant scoping for indexed documents
- Facet filtering and facet counts over the matching set
- Upsert semantics — re-indexing replaces, deletion de-indexes
- Deterministic and offline; no external search engine
API surface
- POST /api/index
- DELETE /api/index/:collection/:id
- GET /api/search?q=&collection=&facet.<key>=
- GET /api/health · GET /api/ready · GET /api/metrics
CONSUMED BY Any module whose users need to find records across the stack. A Platform Service never depends on a Business Module.