Skip to main content

Search

Ground uses hybrid search combining vector similarity with full-text search for optimal retrieval.

How It Works

1. Query Embedding

Your search query is converted into a vector embedding using the same model used for indexing content. pgvector finds the most similar chunks using cosine similarity:
PostgreSQL’s full-text search finds keyword matches:

4. Score Fusion

Results are combined using weighted scores:

5. Policy application

The retrieval policy applies:
  • Source priority weights (boost OpenAPI results for API questions)
  • Staleness filtering (exclude or warn about stale results)
  • Refusal thresholds (refuse to answer with insufficient evidence)

Search Request

For deeper context (neighbor expansion and optional second hybrid pass), use POST /search/rmh — see the RMH search API. Parameters:
  • query: Search query (required)
  • source_ids: Filter to specific sources (optional)
  • top_k: Maximum results (default: 10, max: 50)
  • max_tokens: Token budget for results (default: 4000)
  • include_stale: Include stale results with warning (default: true)

Search Response

Evidence Quality

Ground computes an evidence quality score based on:
  • Score distribution: Higher average scores = better quality
  • Evidence count: More results = more confidence (up to a point)
  • Freshness: Fresher sources = higher quality
  • Conflicts: Conflicts reduce quality score
  • Source type: OpenAPI chunks get a small boost for API questions
Confidence levels:
  • high: score ≥ 0.7
  • medium: score ≥ 0.5
  • low: score ≥ 0.3
  • insufficient: score < 0.3

No Evidence Response

When no relevant content is found: