نظام محرك البحث
نظام محرك بحث قابل للتطوير يدعم كل من إمكانات البحث عن الصورة والنص باستخدام تشابه المتجه.

البحث عن الصور

البحث عن النص
بنية النظام

بنية النظام
سمات
التفاصيل الفنية
خط أنابيب البحث عن الصور
المعالجة المسبقة :
- تغيير حجم الصورة والتطبيع
- زيادة البيانات للتدريب
- دعم تنسيقات JPEG و PNG و WebP
استخراج الميزة :
- بنيات CNN العميقة (Resnet/DeffienceNet)
- تنسيق ONNX للتوافق عبر المنصات
- تحسين Tensorrt لاستدلال GPU
- المخرجات: 512/1024-ناقلات التضمين
تخزين المتجهات والبحث :
- قاعدة بيانات ناقلات QDrant للبحث في التشابه الفعال
- مؤشر HNSW للبحث السريع أقرب بحث جار
- مقاييس المسافة القابلة للتكوين (جيب التمام/الإقليدي)
خط أنابيب البحث النصية
معالجة النص وتحليلها :
- محللات Elasticsearch المخصصة:
- محلل الكلمات الرئيسية مع طي صغير و ASCII
- محلل NGRAM EDGE للإكمال التلقائي (MIN_GRAM: 2 ، MAX_GRAM: 5)
- محلل قياسي للبحث عن النص الكامل
- مرشحات الأحرف والرمز المميز
- دعم النص الفيتنامي
أساليب البحث :
الإكمال التلقائي (Search-As-You-Type) :
- حافة Ngram Tokenizer لمطابقة البادئة
- Suggester الانتهاء المخصص
- محسّن للاقتراحات الفورية
- كحد أدنى 2 حرفًا للاقتراحات
البحث عن النص الكامل :
- استعلام متعدد المباراة عبر الحقول:
- مطابقة غامضة مع غموض السيارات
- تسجيل مخصص على أساس مقاييس العمل:
- معدل البيع (نسبة الخصم)
- حجم المبيعات (> 1000 مكافأة مبيعات)
- تطبيع سعر البند
البحث الأمثل :
- قالب تسجيل مخصص باستخدام البرامج النصية Elasticsearch
- فهرسة الدُفعات لابتلاع البيانات الفعال
- عمليات البحث غير المتزامنة
- حجم النتيجة القابلة للتكوين
- معالجة الأخطاء وتسجيلها
ميزات Elasticsearch :
- تعيينات الفهرس المخصصة
- أنواع حقل متعددة ومحللات
- استفسارات نقاط الوظائف
- التسجيل القائم على السيناريو
- عمليات الفهرسة بالجملة
كومة التكنولوجيا
نموذج الخدمة
- خادم الاستدلال Nvidia Triton :
- وثائق خادم تريتون
- إصدار نموذج واختبار A/B
- سداد ديناميكي
- تنفيذ النموذج المتزامن
- تحسين GPU مع Tensorrt
- خط أنابيب تحويل تنسيق النموذج:
- Pytorch → Onnx → Tensorrt
بنية تحتية
الحاوية :
- Docker Multi-stage يبني
- صور الحاوية الأمثل
- Docker يؤلف للتطوير
التزامن :
- Kubernetes النشر
- مخططات هيلم لإدارة الحزم
- أفقي POD AUTOSCALING
- إدارة الموارد وتوسيعها
المراقبة والتسجيل :
- مقاييس بروميثيوس
- لوحات معلومات Grafana
- تتبع موزعة
- مراقبة الأداء
ابدء
- استنساخ المستودع:
git clone https://github.com/vectornguyen76/search-engine-system.git
- ابدأ الخدمات باستخدام Docker Compose:
- الوصول إلى الخدمات:
- البحث عن الصور واجهة المستخدم: http: // localhost: 8501
- مستخدم البحث عن النص: http: // localhost: 8502
- خادم Triton: http: // localhost: 8000
تطوير
خط أنابيب CI/CD
بيئة التنمية :
- كود Linting (Flake8)
- اختبارات الوحدة
- اختبارات التكامل
بيئة التدريج :
- اختبار الأداء
- تحميل اختبار
- المسح الأمني
بيئة الإنتاج :
- النشر الأزرق الأخضر
- التراجع الآلي
- مراقبة الأداء
جودة الكود
- flake8 ل code python linting
- اكتب التلميحات والوثائق
- الاختبار الآلي في خط أنابيب CI/CD
- عملية مراجعة الكود
المساهمة
- شوكة المستودع
- قم بإنشاء فرع الميزات الخاص بك
- ارتكب تغييراتك
- ادفع إلى الفرع
- إنشاء طلب سحب جديد
رخصة
تم ترخيص هذا المشروع بموجب ترخيص معهد ماساتشوستس للتكنولوجيا - راجع ملف الترخيص للحصول على التفاصيل.