

0 / 2 embers
0 / 3000 xp
click for more info
Complete a lesson to start your streak
click for more info
Still calibrating
click for more info
Not enough gems
Cost: 6 gems
1: Semantic Search
incomplete
2: Embeddings
incomplete
3: Embedding Models
incomplete
4: Model Selection
incomplete
5: Vector Operations
incomplete
6: Dimensions
incomplete
7: Dot Product Similarity
incomplete
8: Cosine Similarity
incomplete
9: Why Cosine Similarity?
incomplete
10: Generating Text Embeddings
incomplete
11: Document Embeddings
incomplete
12: Query Embeddings
incomplete
13: Same Model
incomplete
14: Implementing Semantic Search
incomplete
15: Locality-Sensitive Hashing
incomplete
16: Vector Databases
incomplete
Back
ctrl+,
Next
ctrl+.
This lesson's interactive features are locked, please to keep using them
We've implemented semantic search by storing embeddings in Python lists and calculating similarities one by one. This works for small datasets, but what happens when you have millions or billions of documents? Enter vector databases.
Unlike a relational database like MySQL, which stores structured data in tables, a vector database is designed specifically for storing and searching high-dimensional vectors efficiently. Vector databases offer:
| Traditional Database | Vector Database |
|---|---|
| Data: Structured (rows/columns) | Data: High-dimensional vectors |
| Queries: Exact matches (WHERE clauses) | Queries: Similarity search (nearest neighbors) |
| Use Case: Transactional data | Use Case: ML embeddings, semantic search |
Vector databases also use specialized indexing techniques to speed up similarity searches, such as:
If you're building a production RAG system, you'll likely want to use an off-the-shelf vector database. Here are some popular options: