> ## Documentation Index
> Fetch the complete documentation index at: https://developers.telnyx.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Search Modes

> Compare vector, keyword, and hybrid retrieval in Search and pick the right mode for your queries.

A collection's `retrieval_type` selects how queries are matched against indexed content. There are three modes. To see how each behaves, take one query a support team might run: **"error 10015 on outbound call"**.

## Vector

<Badge color="green" size="sm">Available</Badge>

The query is embedded into a vector and compared against indexed chunks by nearest-neighbor similarity. It matches on **meaning**, so wording can differ: "did we agree to a refund?" finds "we'll credit the invoice".

For the example query, vector search understands the *concept* -- call failures, error handling -- and finds transcripts about failing outbound calls. Its blind spot is the literal string: the chunk containing exactly `10015` may not rank first, because digits have weak semantic neighbors.

Best for natural-language questions where exact terms vary. This is the default mode.

## Keyword

<Badge color="yellow" size="sm">Coming soon</Badge>

Classic lexical search (BM25) -- term-frequency ranking over the actual words, no embeddings. It matches on **exact tokens**, so it finds the chunk that literally contains `10015`. Its blind spot is paraphrase: a transcript that says "the call was rejected with a billing error" but never says "10015" is invisible to it.

Best for identifiers, error codes, SKUs, and names.

## Hybrid

<Badge color="yellow" size="sm">Coming soon</Badge>

Runs vector and keyword in parallel and fuses the two result sets into one ranking. For the example query it finds both the transcript with the literal `10015` and the ones that only describe the failure -- semantic recall plus exact-term precision in a single call, at the cost of slightly more work per request.

Best when queries are mixed or unpredictable.
