Architecture
How EigenSearch ingests, indexes, and serves documents from a single Postgres.
EigenSearch runs as a stateless app plus background workers, backed by one Postgres database. There is no separate search cluster or vector database.
Pipeline
- Connectors pull documents and per-document permissions from each source.
- Ingestion extracts text (OCR for scans), chunks it, and embeds each chunk.
- Postgres stores chunks, lexical indexes, and vectors (
pgvector) side by side. - Retrieval runs lexical + vector search per query and fuses results with RRF.
- Answering reads the top passages and writes a cited answer.
Why Postgres
- One system to deploy, back up, and secure.
- Permissions live next to the data, so they are enforced in the same query that retrieves.
- Scales with read replicas; no index/vector store to keep in sync.
Self-hosted by default. Your documents and embeddings never leave your infrastructure.