From 3dfb3e7823bfee89d9799dd6ee57776bd19644e0 Mon Sep 17 00:00:00 2001
From: "mintlify[bot]" <109931778+mintlify[bot]@users.noreply.github.com>
Date: Fri, 19 Dec 2025 00:09:30 +0000
Subject: [PATCH] Update apps/docs/search/examples/hybrid-search.mdx
Co-Authored-By: mintlify[bot] <109931778+mintlify[bot]@users.noreply.github.com>
---
apps/docs/search/examples/hybrid-search.mdx | 487 ++++++++++++++++++++
1 file changed, 487 insertions(+)
create mode 100644 apps/docs/search/examples/hybrid-search.mdx
diff --git a/apps/docs/search/examples/hybrid-search.mdx b/apps/docs/search/examples/hybrid-search.mdx
new file mode 100644
index 00000000..cbfc7085
--- /dev/null
+++ b/apps/docs/search/examples/hybrid-search.mdx
@@ -0,0 +1,487 @@
+---
+title: Hybrid search examples
+description: Examples of using hybrid search mode to search memories and document chunks
+---
+
+Hybrid search mode searches memories first, then falls back to document chunks when needed. This provides comprehensive results from both structured memories and raw document content.
+
+## Basic hybrid search
+
+Search for information across both memories and document chunks:
+
+
+
+```bash cURL
+curl -X POST https://api.supermemory.ai/v4/search \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "q": "What are the key features of machine learning?",
+ "searchMode": "hybrid",
+ "limit": 10,
+ "threshold": 0.7
+ }'
+```
+
+```javascript JavaScript
+const response = await fetch('https://api.supermemory.ai/v4/search', {
+ method: 'POST',
+ headers: {
+ 'Authorization': 'Bearer YOUR_API_KEY',
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify({
+ q: 'What are the key features of machine learning?',
+ searchMode: 'hybrid',
+ limit: 10,
+ threshold: 0.7
+ })
+});
+
+const data = await response.json();
+console.log(data);
+```
+
+```python Python
+import requests
+
+response = requests.post(
+ 'https://api.supermemory.ai/v4/search',
+ headers={
+ 'Authorization': 'Bearer YOUR_API_KEY',
+ 'Content-Type': 'application/json'
+ },
+ json={
+ 'q': 'What are the key features of machine learning?',
+ 'searchMode': 'hybrid',
+ 'limit': 10,
+ 'threshold': 0.7
+ }
+)
+
+data = response.json()
+print(data)
+```
+
+
+
+### Response
+
+```json
+{
+ "results": [
+ {
+ "id": "mem_abc123",
+ "memory": "Machine learning key features: pattern recognition, automated learning, predictive modeling",
+ "metadata": {
+ "category": "ml_concepts",
+ "source": "training_notes"
+ },
+ "updatedAt": "2024-01-15T10:30:00Z",
+ "version": 1,
+ "rootMemoryId": null,
+ "similarity": 0.94,
+ "context": {
+ "parents": [],
+ "children": []
+ },
+ "documents": [],
+ "chunks": []
+ },
+ {
+ "id": "chunk_xyz789",
+ "chunk": "Machine learning algorithms can identify patterns in data without being explicitly programmed. Key features include supervised learning, unsupervised learning, and reinforcement learning approaches.",
+ "metadata": {
+ "source": "ml_textbook.pdf",
+ "page": 12
+ },
+ "updatedAt": "2024-01-14T09:00:00Z",
+ "similarity": 0.89,
+ "version": 1,
+ "context": {
+ "parents": [],
+ "children": []
+ },
+ "documents": [
+ {
+ "id": "doc_123",
+ "title": "Introduction to Machine Learning",
+ "type": "pdf",
+ "createdAt": "2024-01-10T08:00:00Z",
+ "updatedAt": "2024-01-14T09:00:00Z"
+ }
+ ],
+ "chunks": []
+ }
+ ],
+ "timing": 245,
+ "total": 2
+}
+```
+
+## Hybrid search with document metadata
+
+Include document information to understand the source of chunk results:
+
+
+
+```bash cURL
+curl -X POST https://api.supermemory.ai/v4/search \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "q": "neural network architectures",
+ "searchMode": "hybrid",
+ "limit": 5,
+ "threshold": 0.75,
+ "include": {
+ "documents": true,
+ "summaries": true
+ }
+ }'
+```
+
+```javascript JavaScript
+const response = await fetch('https://api.supermemory.ai/v4/search', {
+ method: 'POST',
+ headers: {
+ 'Authorization': 'Bearer YOUR_API_KEY',
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify({
+ q: 'neural network architectures',
+ searchMode: 'hybrid',
+ limit: 5,
+ threshold: 0.75,
+ include: {
+ documents: true,
+ summaries: true
+ }
+ })
+});
+
+const data = await response.json();
+```
+
+```python Python
+import requests
+
+response = requests.post(
+ 'https://api.supermemory.ai/v4/search',
+ headers={
+ 'Authorization': 'Bearer YOUR_API_KEY',
+ 'Content-Type': 'application/json'
+ },
+ json={
+ 'q': 'neural network architectures',
+ 'searchMode': 'hybrid',
+ 'limit': 5,
+ 'threshold': 0.75,
+ 'include': {
+ 'documents': True,
+ 'summaries': True
+ }
+ }
+)
+
+data = response.json()
+```
+
+
+
+### Response
+
+```json
+{
+ "results": [
+ {
+ "id": "chunk_def456",
+ "chunk": "Common neural network architectures include feedforward networks, convolutional neural networks (CNNs), and recurrent neural networks (RNNs). Each architecture is optimized for different types of tasks.",
+ "metadata": {
+ "source": "deep_learning_guide.pdf",
+ "chapter": "3"
+ },
+ "updatedAt": "2024-01-16T14:20:00Z",
+ "similarity": 0.91,
+ "version": 1,
+ "context": {
+ "parents": [],
+ "children": []
+ },
+ "documents": [
+ {
+ "id": "doc_456",
+ "title": "Deep Learning Architectures",
+ "type": "pdf",
+ "metadata": {
+ "author": "Dr. Jane Smith",
+ "year": 2024
+ },
+ "summary": "A comprehensive guide to modern deep learning architectures, covering CNNs, RNNs, transformers, and more.",
+ "createdAt": "2024-01-15T10:00:00Z",
+ "updatedAt": "2024-01-16T14:20:00Z"
+ }
+ ],
+ "chunks": []
+ }
+ ],
+ "timing": 198,
+ "total": 1
+}
+```
+
+## Hybrid search with filtering
+
+Filter results by metadata while using hybrid search:
+
+
+
+```bash cURL
+curl -X POST https://api.supermemory.ai/v4/search \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "q": "optimization techniques",
+ "searchMode": "hybrid",
+ "limit": 10,
+ "threshold": 0.7,
+ "filters": {
+ "and": [
+ {
+ "key": "category",
+ "operator": "equals",
+ "value": "deep_learning"
+ },
+ {
+ "key": "difficulty",
+ "operator": "less_than_or_equal",
+ "value": 3
+ }
+ ]
+ }
+ }'
+```
+
+```javascript JavaScript
+const response = await fetch('https://api.supermemory.ai/v4/search', {
+ method: 'POST',
+ headers: {
+ 'Authorization': 'Bearer YOUR_API_KEY',
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify({
+ q: 'optimization techniques',
+ searchMode: 'hybrid',
+ limit: 10,
+ threshold: 0.7,
+ filters: {
+ and: [
+ {
+ key: 'category',
+ operator: 'equals',
+ value: 'deep_learning'
+ },
+ {
+ key: 'difficulty',
+ operator: 'less_than_or_equal',
+ value: 3
+ }
+ ]
+ }
+ })
+});
+
+const data = await response.json();
+```
+
+```python Python
+import requests
+
+response = requests.post(
+ 'https://api.supermemory.ai/v4/search',
+ headers={
+ 'Authorization': 'Bearer YOUR_API_KEY',
+ 'Content-Type': 'application/json'
+ },
+ json={
+ 'q': 'optimization techniques',
+ 'searchMode': 'hybrid',
+ 'limit': 10,
+ 'threshold': 0.7,
+ 'filters': {
+ 'and': [
+ {
+ 'key': 'category',
+ 'operator': 'equals',
+ 'value': 'deep_learning'
+ },
+ {
+ 'key': 'difficulty',
+ 'operator': 'less_than_or_equal',
+ 'value': 3
+ }
+ ]
+ }
+ }
+)
+
+data = response.json()
+```
+
+
+
+## Hybrid search with reranking
+
+Use reranking to improve result relevance in hybrid search:
+
+
+
+```bash cURL
+curl -X POST https://api.supermemory.ai/v4/search \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "q": "best practices for model training",
+ "searchMode": "hybrid",
+ "limit": 10,
+ "threshold": 0.7,
+ "rerank": true,
+ "include": {
+ "documents": true,
+ "chunks": true
+ }
+ }'
+```
+
+```javascript JavaScript
+const response = await fetch('https://api.supermemory.ai/v4/search', {
+ method: 'POST',
+ headers: {
+ 'Authorization': 'Bearer YOUR_API_KEY',
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify({
+ q: 'best practices for model training',
+ searchMode: 'hybrid',
+ limit: 10,
+ threshold: 0.7,
+ rerank: true,
+ include: {
+ documents: true,
+ chunks: true
+ }
+ })
+});
+
+const data = await response.json();
+```
+
+```python Python
+import requests
+
+response = requests.post(
+ 'https://api.supermemory.ai/v4/search',
+ headers={
+ 'Authorization': 'Bearer YOUR_API_KEY',
+ 'Content-Type': 'application/json'
+ },
+ json={
+ 'q': 'best practices for model training',
+ 'searchMode': 'hybrid',
+ 'limit': 10,
+ 'threshold': 0.7,
+ 'rerank': True,
+ 'include': {
+ 'documents': True,
+ 'chunks': True
+ }
+ }
+)
+
+data = response.json()
+```
+
+
+
+## Processing hybrid search results
+
+Here's how to handle both memory and chunk results:
+
+```javascript
+const response = await fetch('https://api.supermemory.ai/v4/search', {
+ method: 'POST',
+ headers: {
+ 'Authorization': 'Bearer YOUR_API_KEY',
+ 'Content-Type': 'application/json'
+ },
+ body: JSON.stringify({
+ q: 'machine learning concepts',
+ searchMode: 'hybrid',
+ limit: 10
+ })
+});
+
+const data = await response.json();
+
+// Process results based on type
+data.results.forEach(result => {
+ if (result.memory) {
+ // This is a memory result
+ console.log('Memory:', {
+ id: result.id,
+ content: result.memory,
+ similarity: result.similarity,
+ metadata: result.metadata
+ });
+ } else if (result.chunk) {
+ // This is a chunk result
+ console.log('Chunk:', {
+ id: result.id,
+ content: result.chunk,
+ similarity: result.similarity,
+ document: result.documents[0]?.title || 'Unknown'
+ });
+ }
+});
+```
+
+## When to use hybrid search
+
+Use hybrid search when:
+
+- **Incomplete memories**: Your memories might not cover all relevant information
+- **Document-heavy content**: You have large documents that haven't been fully processed into memories
+- **Exploratory search**: You want to discover information across all available sources
+- **Fallback mechanism**: You want to ensure results even when memories are sparse
+
+Use memories-only search when:
+
+- **Structured data**: You only want curated, structured memory entries
+- **Performance**: You need the fastest possible search (hybrid adds ~50-100ms)
+- **Memory-first approach**: Your application relies primarily on memories
+
+## Best practices
+
+1. **Set appropriate thresholds**: Use higher thresholds (0.75-0.85) for hybrid search to ensure quality
+2. **Include document metadata**: Always include documents to understand chunk sources
+3. **Handle both result types**: Check for `memory` or `chunk` fields in your code
+4. **Use reranking for quality**: Enable reranking when result quality is critical
+5. **Filter appropriately**: Use filters to narrow down results from both sources
+6. **Monitor performance**: Hybrid search is slightly slower due to parallel chunk search
+
+## Related
+
+
+
+ Examples of memories-only search
+
+
+ All search parameters
+
+
+ Understanding responses
+
+
+ Advanced filtering
+
+