Guides

Semantic Search

Understand how Notery's AI-powered semantic search works and how to get the best results.

How It Works

Notery uses Cohere embed-v4 to generate 1536-dimensional vector embeddings for each document. These embeddings capture the meaning of your content, not just the exact words you used.

Embeddings are stored in PostgreSQL with the pgvector extension and indexed using HNSW (Hierarchical Navigable Small World) for fast approximate nearest-neighbor search, even across large workspaces.

Traditional keyword search requires an exact match — searching for "auth flow" won't find a document titled "Login Process." Semantic search understands meaning, so related concepts surface naturally.

QueryKeyword SearchSemantic Search
"authentication flow"Matches only docs containing "authentication flow"Also finds docs about "login process," "session management," "OAuth setup"
"deploy to production"Matches only exact phraseAlso finds "shipping to prod," "release pipeline," "CI/CD workflow"
"error handling patterns"Matches only exact phraseAlso finds "try-catch strategies," "graceful degradation," "fault tolerance"

Automatic Embedding Generation

Embeddings are generated automatically whenever you create or update a document. There is no manual step required — your workspace stays searchable as you write.

Embedding generation happens server-side after each save. For very large documents, there may be a brief delay before the updated content is searchable.

Pro Reranking

On the Pro plan, search results are re-ordered by a cross-encoder reranking model after the initial vector search. This two-stage process significantly improves relevance, especially for nuanced queries where multiple documents are semantically close.

  1. Stage 1 — Vector search: Retrieves the top candidate documents by embedding similarity.
  2. Stage 2 — Reranking: A cross-encoder model scores each candidate against your query and reorders them for better precision.

Get the most out of semantic search by following these guidelines.

  • Use natural language questions. Instead of typing fragmented keywords like postgres index, try How do I create an index in PostgreSQL?
  • Be specific. The more context you provide in your query, the more relevant the results. React server component data fetching patterns will outperform React data.
  • Combine with filters. Use folder or tag filters alongside semantic search to narrow results to a specific area of your workspace.
  • Search for concepts, not filenames. Semantic search works on document content and meaning — describe what you're looking for, not what you think the file is called.