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

  1. Connectors pull documents and per-document permissions from each source.
  2. Ingestion extracts text (OCR for scans), chunks it, and embeds each chunk.
  3. Postgres stores chunks, lexical indexes, and vectors (pgvector) side by side.
  4. Retrieval runs lexical + vector search per query and fuses results with RRF.
  5. 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.