CodeShot
Vector Database1 دقیقه مطالعه

پایگاه‌داده برداری (Vector Database) چیست؟

پایگاه‌داده‌ای تخصصی برای ذخیره Embeddingها و جست‌وجوی سریع «نزدیک‌ترین‌ها» بر اساس شباهت معنایی، نه تطابق دقیق متن.

چرا مهم است؟

پایگاه‌داده‌های رابطه‌ای/سندی برای جست‌وجوی دقیق (WHERE name = ...) بهینه‌اند، نه برای «کدام متن‌ها از نظر معنا شبیه این متن‌اند؟» — دقیقاً همان سؤالی که RAG و جست‌وجوی معنایی نیاز دارند؛ Vector Database با ایندکس‌های تخصصی (HNSW و مشابه) این جست‌وجو را روی میلیون‌ها بردار در چند میلی‌ثانیه ممکن می‌کند.

تعریف

Vector Database بردارهای عددی (خروجی مدل‌های Embedding) را به‌همراه متن اصلی ذخیره می‌کند و به‌جای تطابق دقیق، بر اساس فاصله بین بردارها (Cosine Similarity رایج‌ترین است) نزدیک‌ترین نتایج را برمی‌گرداند.

گزینه‌های رایج

نوع نمونه نکته
اختصاصی/ابری Pinecone، Qdrant، Weaviate مدیریت‌شده، مقیاس‌پذیر، شروع سریع
افزونه روی دیتابیس موجود pgvector (روی PostgreSQL) اگر از قبل PostgreSQL دارید، بدون زیرساخت جدید
سرویس ابری مایکروسافت Azure AI Search یکپارچه با اکوسیستم Azure و Semantic Kernel
در حافظه/سبک Redis (RediSearch)، SQLite-VSS مناسب پروژه‌های کوچک یا Cache

جریان کار پایه

// 1) تبدیل متن به بردار
float[] vector = await embeddingGenerator.GenerateAsync(document.Text);

// 2) ذخیره بردار + متن اصلی در Vector Database
await vectorStore.UpsertAsync(document.Id, vector, document.Text);

// 3) در زمان جست‌وجو، سؤال کاربر هم به بردار تبدیل و مقایسه می‌شود
var results = await vectorStore.SearchAsync(queryVector, topK: 5);

اشتباه رایج

❌ استفاده از فاصله اقلیدسی (Euclidean) و Cosine Similarity به‌جای هم بدون توجه — بیشتر مدل‌های Embedding متنی برای Cosine بهینه شده‌اند؛ انتخاب اشتباه معیار شباهت، نتایج نامرتبط برمی‌گرداند.

منبع و مطالعه بیشتر

خلاصه

Vector Database بردارهای Embedding را ذخیره و بر اساس شباهت معنایی (نه تطابق دقیق) جست‌وجو می‌کند و پایه اصلی RAG است. گزینه‌ها از سرویس‌های اختصاصی (Pinecone، Qdrant) تا افزونه روی دیتابیس موجود (pgvector) و Azure AI Search متغیرند. معیار شباهت درست (معمولاً Cosine) باید با مدل Embedding هم‌خوان باشد. مرجع کامل: Microsoft Learn.

این مطلب مفید بود؟
نشان کردن
مشاهده در Concept Hub ←