# No Relevant Chunks Retrieved

## The Problem

Vector search fails to retrieve relevant documents, returning either no results or highly irrelevant ones despite the knowledge base containing the answer.

### Symptoms

* ❌ "I don't have that information" despite doc existing
* ❌ Retrieved chunks completely off-topic
* ❌ Similarity scores all below threshold
* ❌ Right document exists but not retrieved
* ❌ Semantic search misses keyword matches

### Real-World Example

```
Knowledge base contains:
"How to reset your password: Click 'Forgot Password' on login page..."

User query: "I can't log in, forgot my password"

Vector search retrieves:
→ Chunks about account creation
→ Chunks about security policies
→ Nothing about password reset

AI: "I don't have information about password reset."

Problem: Query embedding didn't match document embedding
```

***

## Deep Technical Analysis

### Query-Document Mismatch

**Vocabulary Gap:**

```
User query: "How do I nuke my account?"
Document: "Account deletion procedure..."

Embeddings:
→ "nuke" → casual/slang vector space
→ "deletion" → formal vector space
→ Low cosine similarity despite same intent
```

**Query Too Short:**

```
Query: "API"
→ Too generic
→ Matches hundreds of chunks equally
→ Top-K full of weak matches

vs

Query: "API authentication using OAuth tokens"
→ Specific
→ Better discrimination
→ Retrieves relevant OAuth docs
```

### Embedding Quality Issues

**Out-of-Domain Text:**

```
Embedding model trained on:
→ General web text
→ Wikipedia
→ Books

Your domain:
→ Technical product docs
→ Domain-specific jargon
→ Internal terminology

Embedding model doesn't understand:
→ Your acronyms
→ Your product names
→ Your technical terms
→ Lower retrieval quality
```

**Example:**

```
Model doesn't know "Redwood Strategy" is your RAG approach:
→ Query: "When should I use Redwood?"
→ Model treats "Redwood" as tree type
→ Fails to retrieve your docs about Redwood Strategy
```

### Threshold Tuning

**Similarity Score Cutoff:**

```
Config: Only return chunks with score > 0.7

Problem:
→ Best match: 0.65 (good enough, but below threshold)
→ Result: No chunks returned
→ "I don't have that information"

Should be: Dynamic threshold or return top-K regardless
```

### Hybrid Search Benefits

**Semantic-Only Limitations:**

```
Query: "Order #12345 status"
→ Semantic embedding focuses on "order status" (concept)
→ Misses exact match on "12345"
→ Retrieves generic order status docs, not specific order
```

**Keyword + Semantic:**

```
Hybrid search:
1. Keyword: Find docs containing "12345" (exact match)
2. Semantic: Find docs about order status
3. Combine results (weighted)

More likely to find specific order #12345 status
```

***

## How to Solve

**Implement hybrid search (semantic + keyword) + fine-tune embeddings on domain-specific data + expand queries with synonyms/related terms + use lower similarity thresholds or always return top-K + apply query rewriting (expand short/ambiguous queries) + add fallback to full-text search if no semantic matches.** See [Retrieval Failures](/rag-scenarios-and-solutions/accuracy/no-answer.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.twig.so/rag-scenarios-and-solutions/accuracy/no-answer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
