Qdrant چیست؟
Qdrant (تلفظ: کادْرَنت) یک دیتابیس برداری (Vector Database) قدرتمند و متنباز (Open Source) است که به زبان Rust نوشته شده.
به زبان ساده: توی دیتابیسهای معمول مثل MySQL یا PostgreSQL، ما دادهها رو به صورت ردیف و ستون ذخیره میکنیم و بر اساس مقادیر اونها جستجو میکنیم. اما Qdrant مخصوص ذخیرهسازی بردارها (Vectors) ساخته شده — همون اعدادی که مدلهای هوش مصنوعی (مثل ChatGPT یا مدلهای embedding) تولید میکنند.
کاربردهای اصلی Qdrant
- جستجوی معنایی (Semantic Search): مثلاً بهش میگی «تغییرات اقلیمی» و مقالات مربوط به «گرمایش زمین» رو برات پیدا میکنه
- سیستمهای توصیهگر (Recommendation Systems): مثل «محصولات مشابه» در فروشگاههای اینترنتی
- حافظه بلندمدت برای AI Agentها و RAG (Retrieval-Augmented Generation)
- تشابهیابی تصاویر، صداها و متنها
ویژگیهای مهم Qdrant
- ⚡ فوقالعاده سریع — نوشته شده با Rust و از SIMD پشتیبانی میکنه
- 🔍 فیلتر کردن پیشرفته — میتونی همزمان با جستجوی برداری، روی JSON metadata هم فیلتر اعمال کنی
- 📊 مقیاسپذیر — تا میلیاردها بردار رو پشتیبانی میکنه
- 🔄 جستجوی ترکیبی (Hybrid Search) — ترکیب جستجوی معنایی + جستجوی متنی
- 🖥️ رابط کاربری تحت وب — داشبورد بصری برای مدیریت
- 📦 Client Library برای زبانهای مختلف: Python, JavaScript, Rust, Go, Java, .NET
روشهای نصب Qdrant
Qdrant رو به ۴ روش اصلی میشه نصب کرد. بیایید هرکدوم رو ببینیم:
✅ روش ۱: نصب با Docker (سادهترین روش — توصیهشده)
این روش هم روی لینوکس و هم روی ویندوز جواب میده.
روی لینوکس
# مرحله ۱: کشیدن image از Docker Hub
docker pull qdrant/qdrant
# مرحله ۲: اجرای کانتینر (با ذخیرهسازی دائمی)
docker run -p 633:633 -p 6334:6334 \
-v "$(pwd)/qdrant_storage:/qdrant/storage" \
qdrant/qdrant
روی ویندوز (با Docker Desktop)
# مرحله ۱: کشیدن image
docker pull qdrant/qdrant
# مرحله ۲: اجرا
docker run -p 633:633 -p 6334:6334 ^
-v "%cd%/qdrant_storage:/qdrant/storage" ^
qdrant/qdrant
⚠️ نکته مهم برای ویندوز: به دلیل مشکلات فایلسیستم در WSL، توصیه میشه مسیر ذخیرهسازی رو داخل یک volume مخصوص Docker بذارید، نه روی فایلسیستم ویندوز.
بعد از اجرا، به این آدرسها دسترسی دارید
| سرویس | آدرس |
|---|---|
| REST API | http://localhost:633 |
| Web UI (داشبورد) | http://localhost:633/dashboard |
| gRPC API | localhost:6334 |
✅ روش ۲: نصب با استفاده از باینری مستقیم (بدون Docker)
Qdrant فایلهای باینری آماده برای سیستمعاملهای مختلف ارائه میده.
روی لینوکس (Ubuntu/Debian)
# دانلود آخرین نسخه (مثلاً v1.18.3) - فایل .deb
wget https://github.com/qdrant/qdrant/releases/download/v1.18.3/qdrant_1.18.3-1_amd64.deb
# نصب
sudo dpkg -i qdrant_1.18.3-1_amd64.deb
# اجرا
qdrant
روی لینوکس (نسخه فشرده — عمومی)
# دانلود فایل tar.gz
wget https://github.com/qdrant/qdrant/releases/download/v1.18.3/qdrant-x86_64-unknown-linux-gnu.tar.gz
# استخراج
tar -xzf qdrant-x86_64-unknown-linux-gnu.tar.gz
# اجرا
./qdrant
روی ویندوز
# ۱. از صفحه Releases گیتهاب دانلود کن:
# https://github.com/qdrant/qdrant/releases
# فایل: qdrant-x86_64-pc-windows-msvc.zip
# ۲. فایل رو extract کن
# ۳. توی CMD یا PowerShell اجرا کن:
.\qdrant.exe
✅ روش ۳: نصب از روی سورس (منبع کد) — برای لینوکس و macOS
اگر نیاز به کامپایل اختصاصی برای معماری خاصی دارید:
# پیشنیاز: نصب Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# clone کردن مخزن
git clone https://github.com/qdrant/qdrant.git
cd qdrant
# کامپایل
cargo build --release --bin qdrant
# باینری در مسیر:
./target/release/qdrant
✅ روش ۴: نصب کتابخانه Python (حالت Local Mode)
اگر برنامهنویس پایتون هستی، میتونی حتی بدون اجرای سرور، Qdrant رو مستقیم در کدت استفاده کنی:
pip install qdrant-client
و بعد توی کد پایتون:
from qdrant_client import QdrantClient
# حالت Local — بدون نیاز به سرور!
client = QdrantClient(":memory:")
# یا با مسیر مشخص
client = QdrantClient(path="/tmp/my_qdrant_db")
🚀 شروع سریع (Quick Start) — بعد از نصب
بعد از اینکه Qdrant رو اجرا کردی، میتونی با یه درخواست ساده REST API امتحانش کنی:
# بررسی وضعیت سرور
curl http://localhost:633
و برای استفاده در پایتون:
from qdrant_client import QdrantClient
from qdrant_client.http.models import Distance, VectorParams
client = QdrantClient("http://localhost:633")
# ساخت یک Collection جدید
client.create_collection(
collection_name="my_collection",
vectors_config=VectorParams(size=128, distance=Distance.COSINE),
)
# اضافه کردن چند نقطه (Point)
client.upsert(
collection_name="my_collection",
points=[
{"id": 1, "vector": [0.1]*128, "payload": {"name": "سند اول"}},
{"id": 2, "vector": [0.2]*128, "payload": {"name": "سند دوم"}},
]
)
🧪 نکات مهم
| نکته | توضیح |
|---|---|
| 🔌 پورتها | پورت 633 برای REST API / پورت 6334 برای gRPC |
| 💾 فضای ذخیرهسازی | نیاز به SSD یا NVMe — از NFS و S3 پشتیبانی نمیکنه |
| 🖥️ Docker روی ویندوز | مراقب مشکلات فایلسیستم در WSL باشید |
| 🔐 امنیت | پیشفرض بدون احراز هویت — حتماً برای پروداکشن امن کنید |
| ☁️ ابر | Qdrant Cloud هم سرویس رایگان داره |
📚 جمعبندی
Qdrant یک دیتابیس برداری مدرن، سریع و قدرتمنده که بهترین گزینه برای کارهای هوش مصنوعی، جستجوی معنایی و RAG هست. سادهترین راه نصب استفاده از Docker هست که روی هر دو سیستمعامل لینوکس و ویندوز جواب میده. بعد از اجرا با docker run، فقط کافیه پورت 633 رو باز کنی و API آماده استفاده است.
