# Emdb Search

> Search for similar vectors in EmergentDB. Use when the user wants to query, find similar documents, or do semantic search against their vector database.

- Skill: `justrach/emdb-search` (Agent Skill)
- Install (CLI): `npx skillmds@latest add justrach/emdb-search`
- Raw SKILL.md: https://api.skillmd.com/api/skills/justrach/emdb-search/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: justrach (https://skillmd.com/u/justrach)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/justrach/emdb-search

---


# Search Vectors in EmergentDB

Help the user search for similar vectors using the official SDKs.

## TypeScript SDK

```typescript
import { EmergentDB } from "emergentdb";

const db = new EmergentDB("emdb_your_api_key");

// Basic search
const results = await db.search(queryVector, { k: 10 });

// With metadata and namespace
const results = await db.search(queryVector, {
  k: 5,
  includeMetadata: true,
  namespace: "production",
});

// Access results
for (const r of results.results) {
  console.log(`ID: ${r.id}, Score: ${r.score}, Title: ${r.metadata?.title}`);
}
```

## Python SDK

```python
from emergentdb import EmergentDB

db = EmergentDB("emdb_your_api_key")

# Basic search
results = db.search(query_vector, k=10)

# With metadata and namespace
results = db.search(query_vector, k=5, include_metadata=True, namespace="production")

# Access results
for r in results.results:
    print(f"ID: {r.id}, Score: {r.score}, Title: {r.metadata.get('title')}")
```

## Search Response Structure

```json
{
  "results": [
    { "id": 42, "score": 0.05, "metadata": { "title": "Best match" } },
    { "id": 17, "score": 0.12 }
  ],
  "count": 2,
  "namespace": "production"
}
```

## Key Details

- **Score**: Distance — **lower = more similar**. Not a similarity percentage.
- **k**: Max results, 1–100, default 10.
- **include_metadata** / **includeMetadata**: Must be `true` to get metadata back (default `false`).
- **Namespace scoping**: Searches only return vectors from the specified namespace.
- **Real-time**: Vectors are searchable immediately after insertion.

## Error Codes

| Code | Meaning |
|------|---------|
| 400 | Invalid request — bad vector, wrong dimension |
| 401 | Missing or invalid API key |
| 429 | Rate limit exceeded |
| 500 | Server error — retry with backoff |

## Rate Limits

| Plan | Limit |
|------|-------|
| Free | 60 req/min |
| Launch | 300 req/min |
| Scale | 600 req/min |

## Common Pattern: Semantic Search

```python
import openai
from emergentdb import EmergentDB

client = openai.OpenAI()
db = EmergentDB("emdb_your_key")

# Embed the user's query
query = "How do neural networks learn?"
resp = client.embeddings.create(model="text-embedding-3-small", input=query)

# Search for similar documents
results = db.search(resp.data[0].embedding, k=5, include_metadata=True)
for r in results.results:
    print(f"{r.score:.4f} - {r.metadata.get('title', 'untitled')}")
```

When helping the user, make sure their query vector uses the same embedding model and dimensions as their stored vectors.

