The fastest way to waste money on AI search is to migrate infrastructure before the retrieval problem is measured. The fastest way to break production is to keep the prototype after the workload has clearly outgrown it.

Situation

Most natural language search systems start as POCs.

A team chunks documents, creates embeddings, stores vectors, retrieves top results, and asks an LLM to answer. The first demo works because the query set is small, the corpus is curated, and the users are forgiving.

Then production arrives.

Users ask exact-token queries. They apply filters. They expect freshness. They ask for prices, inventory, policy versions, tenant-specific data, and comparisons. They click bad results. They notice missing results. They ask the system to take actions.

The architecture has to evolve without turning every POC into a platform rebuild.

The Problem

Teams need two opposing disciplines.

First, do not overbuild too early. A controlled internal knowledge base may not need a search cluster or graph pipeline on day one.

Second, do not underbuild after evidence appears. A consumer-facing search product cannot be operated like a notebook demo with embeddings.

The migration decision should be evidence-driven. The system should graduate when the workload crosses a specific boundary: relevance, scale, filters, freshness, cost, operations, security, or workflow complexity.

The Staged Architecture

flowchart TD
    POC[POC retrieval] --> PG[Postgres hybrid]
    PG --> SRCH[Search platform]
    SRCH --> VEC[Specialized vector service]
    SRCH --> AG[Agent layer]
    SRCH --> GR[Graph retrieval]
    AG --> PROD[Production workflow]
    GR --> PROD
    VEC --> PROD

Stage 1 is the POC. It proves that the corpus, chunking, embeddings, and prompt can answer useful questions.

Stage 2 is database-shaped production. PostgreSQL full-text search plus pgvector may be enough when the corpus is controlled, authorization is relational, query volume is modest, and one operating model matters.

Stage 3 is search-shaped production. OpenSearch or Elasticsearch becomes attractive when facets, analyzers, typo tolerance, geo, ranking, query analytics, and high-volume relevance tuning matter.

Stage 4 is retrieval specialization. Qdrant, Weaviate, Pinecone, Milvus, or another vector-native system may fit when vector retrieval, sparse plus dense search, payload filtering, multivectors, or managed vector operations become central.

Stage 5 is workflow expansion. Agentic RAG appears when users need outcomes, tools, retries, validation, and governed actions.

Stage 6 is relationship expansion. GraphRAG appears when entity links, communities, and corpus-level synthesis become the value.

The important point is that these are not maturity badges. They are workload responses.

In Practice

The documented behavior of the major systems supports a staged approach.

Postgres and pgvector provide a credible first production step because full-text search, SQL filters, and vector indexes can live in one database. That reduces operational overhead when the workload is internal and controlled.

OpenSearch and Elasticsearch provide a search-platform step because hybrid search, analyzers, filters, geo, ranking, and relevance tooling are core to search serving systems. That matters when search quality becomes a product metric.

Weaviate, Qdrant, and Pinecone provide specialized retrieval options because each supports hybrid or dense plus sparse retrieval patterns with service-oriented operating models. That matters when retrieval needs are no longer best expressed as relational tables or search-engine documents.

GraphRAG provides a relationship step because its documented architecture extracts entities, builds graph structure, creates community summaries, and supports local and global graph search. That matters when questions require links and synthesis across the corpus.

Agent systems provide a workflow step because they can plan and call tools. That matters only when the product contract includes action.

Graduation Signals

MoveEvidence that justifies it
POC to Postgres hybridUsers need exact terms and semantic recall under SQL filters
Postgres hybrid to search platformFacets, typo tolerance, geo, analyzers, ranking, or query analytics become central
Search platform to vector serviceVector workload needs specialized filtering, sparse plus dense retrieval, or retrieval-service isolation
Search to agent layerUsers need tool calls, validation, retries, or side effects
Hybrid search to GraphRAGRelationships, communities, or corpus-level synthesis drive value
Any stage to managed serviceTeam lacks operational capacity and accepts vendor cost

Where It Breaks

MistakeResultFix
No evaluation setArchitecture debates become opinionBuild query benchmarks first
No source-of-truth boundaryLLM or index invents final factsKeep authoritative systems explicit
No freshness metricStale search becomes invisibleTrack ingestion and embedding lag
No rollbackRelevance releases become riskyUse aliases, versions, and config rollback
No degraded modePartial outages become full outagesDefine lexical-only or read-only fallback
No cost modelReranking and agents surprise the budgetTrack per-query and per-stage cost
No ownership modelDBAs, search engineers, and AI teams overlap badlyAssign operational ownership by layer

What to Do Next

  • Problem: Decide whether the current system is failing because of retrieval quality, search product requirements, vector scale, workflow complexity, or relationship reasoning.
  • Solution: Graduate one layer at a time: Postgres hybrid, search platform, vector service, agent layer, or graph retrieval.
  • Proof: Maintain a query evaluation suite with expected results, hard-filter tests, stale-data tests, permission-negative tests, and workflow simulations.
  • Action: Before migration, define source of truth, ingestion replay, index rebuild, relevance rollback, observability, cost budget, degraded mode, and incident owner.

The POC is allowed to be simple. Production is not allowed to be vague.

A mature natural language search architecture is not the one with the most AI components. It is the one whose retrieval path, truth boundary, failure modes, and operating model are clear enough to debug under pressure.

Sources