← All features

Hybrid Search

Rank the matching paragraph first

Keyword search misses paraphrases. Vector search misses the exact error code. GNO runs both, fuses them with reciprocal rank fusion, and reranks with a cross-encoder so relevant passages surface first. Latency depends on the corpus, hardware, enabled stages, and whether models are already loaded. When you want to know why a result ranked where it did, --explain shows the stage timings and per-result score components.

Use cases
Teams querying one local index instead of N folders and apps
Researchers mixing exact references with open-ended questions
AI workflows that need accurate retrieval from your own documents

What it gives you

  • Supported filters apply before candidate limits; empty or fewer-than-requested results remain valid
  • Keyword search that handles exact terms, quoted phrases, and technical names
  • Vector search over paraphrases and conceptual queries
  • Reciprocal rank fusion of BM25 and vector hits, then cross-encoder rerank
  • Default seed-scoped graph expansion brings in one-hop linked evidence after initial fusion
  • Reranking that pushes the most relevant passage to the top
  • Query expansion that finds related terms you didn’t think to search for
  • Skips query expansion when the initial match is already strong
  • Tag, date, category, author, and language filters apply when graph expansion is enabled
  • Clickable terminal links for command-line search workflows
  • Configurable speed: fast, balanced, or thorough modes

Try it yourself

Representative commands and entry points. Full reference lives in the documentation.

gno search 'exact terms'
gno vsearch 'conceptual query'
gno query 'best of both'
gno query 'topic' --thorough

Keep reading

Related features and docs.