إنتقل إلى المحتوى الرئيسي

الفصل 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: خيارات شائعة.