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 APIhttp://localhost:633
Web UI (داشبورد)http://localhost:633/dashboard
gRPC APIlocalhost: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 آماده استفاده است.