الفصل 1: مقدمة إلى Vector Stores
ما الذي يميّز قواعد البيانات المتجهية؟
قواعد البيانات التقليدية محسَّنة للتطابقات الدقيقة:
SELECT * FROM products WHERE id = 123;
قواعد البيانات المتجهية محسَّنة للبحث بالتشابه:
# Find the 10 most similar vectors to query_vector
results = vector_db.search(query_vector, top_k=10)
خوارزميات الفهرسة
HNSW (Hierarchical Navigable Small World)
الخوارزمية الأكثر شيوعًا للبحث المتجهي:
# HNSW parameters
index = create_hnsw_index(
vectors=embeddings,
M=16, # Number of connections per node
ef_construction=200, # Build-time quality
ef_search=50 # Query-time quality
)
الخصائص:
- سرعة استعلام ممتازة
- استخدام ذاكرة مرتفع
- الأفضل لمعظم الحالات
IVF (Inverted File Index)
تجمّع المتجهات لتسريع البحث:
# IVF parameters
index = create_ivf_index(
vectors=embeddings,
nlist=100, # Number of clusters
nprobe=10 # Clusters to search
)
الخصائص:
- ذاكرة أقل من HNSW
- تتطلّب تدريبًا
- جيدة لمجموعات البيانات الكبيرة
الفهرس المسطح (Flat)
بحث دقيق بالقوة الغاشمة:
# No parameters - exact search
index = create_flat_index(vectors=embeddings)
الخصائص:
- دقة كاملة
- أبطأ بحث
- جيد لمجموعات البيانات الصغيرة
مقارنة الخوارزميات
| الخوارزمية | السرعة | الذاكرة | الدقة | الأنسب لـ |
|---|---|---|---|---|
| HNSW | سريعة | مرتفعة | ~95% | معظم الحالات |
| IVF | متوسطة | متوسطة | ~90% | النطاق الكبير |
| Flat | بطيئة | منخفضة | 100% | مجموعات صغيرة |
تخزين Metadata
تخزّن قواعد البيانات المتجهية metadata بجانب المتجهات:
vectorstore.add(
vectors=[embedding],
documents=["Company policy document"],
metadata=[{
"source": "handbook.pdf",
"page": 15,
"department": "HR",
"date": "2024-01-15"
}]
)
# Filter by metadata during search
results = vectorstore.search(
query_vector,
filter={"department": "HR"},
top_k=5
)
ميزات أساسية ينبغي مراعاتها
| الميزة | الوصف |
|---|---|
| التصفية | الاستعلام حسب metadata |
| التحديثات | تعديل المتجهات القائمة |
| الحذف | إزالة المتجهات |
| Namespaces | عزل البيانات |
| التكرار | توافر عالٍ |
| Sharding | التوسّع أفقيًا |
ملخص
- تمكّن قواعد البيانات المتجهية البحث بالتشابه
- HNSW هي الخوارزمية الأكثر شيوعًا
- تصفية metadata ضرورية للإنتاج
- اختر بناءً على النطاق والمتطلبات
الخطوات التالية
تابع إلى الفصل 2: خيارات شائعة.