Milvus
Zilliz
  • Home
  • Blog
  • اختيار قاعدة بيانات المتجهات للبحث عن الشبكة العنكبوتية في Reddit

اختيار قاعدة بيانات المتجهات للبحث عن الشبكة العنكبوتية في Reddit

  • Engineering
November 28, 2025
Chris Fournie

كتب هذا المنشور كريس فورني، مهندس البرمجيات في ريديت، ونُشر في الأصل على موقع ريديت، ويُعاد نشره هنا بإذن.

في عام 2024، استخدمت فرق ريديت مجموعة متنوعة من الحلول لإجراء بحث متجه الجار الأقرب التقريبي (ANN). بدءًا من Vertex AI Vector Search من Google وتجربة استخدام بحث متجه ANN في أباتشي سولر (Apache Solr ) في بعض مجموعات البيانات الأكبر حجمًا، إلى مكتبة FAISS من فيسبوك لمجموعات البيانات الأصغر (المستضافة في سيارات جانبية متدرجة رأسيًا). أراد المزيد والمزيد من الفرق في Reddit حلاً مدعومًا على نطاق واسع للبحث عن متجهات ANN يكون فعالاً من حيث التكلفة، ويتمتع بميزات البحث التي يرغبون فيها، ويمكنه التوسع في بيانات بحجم Reddit. لتلبية هذه الحاجة، بحثنا في عام 2025 عن قاعدة بيانات المتجهات المثالية لفرق Reddit.

يصف هذا المنشور العملية التي استخدمناها لاختيار أفضل قاعدة بيانات متجهة لاحتياجات Reddit اليوم. وهو لا يصف أفضل قاعدة بيانات متجهات بشكل عام، ولا مجموعة المتطلبات الوظيفية وغير الوظيفية الأكثر أهمية لجميع الحالات. إنه يصف ما قدّره ريديت وثقافته الهندسية وأعطاه الأولوية عند اختيار قاعدة بيانات المتجهات. قد يكون هذا المنشور بمثابة مصدر إلهام لجمع المتطلبات الخاصة بك وتقييمها، ولكن لكل مؤسسة ثقافتها وقيمها واحتياجاتها الخاصة.

عملية التقييم

بشكل عام، كانت خطوات الاختيار هي

1. جمع السياق من الفرق

2. التقييم النوعي للحلول

3. التقييم الكمي لأفضل المتنافسين

4. الاختيار النهائي

1. جمع السياق من الفرق

تم جمع ثلاثة أجزاء من السياق من الفرق المهتمة بإجراء بحث متجه الشبكة النانوية الاصطناعية:

  • المتطلبات الوظيفية (على سبيل المثال، البحث المتجه الهجين والبحث المعجمي؟ استعلامات بحث النطاق؟ التصفية حسب السمات غير المتجهة؟)

  • المتطلبات غير الوظيفية (على سبيل المثال، هل يمكن أن يدعم متجهات 1B؟ هل يمكن أن يصل زمن الوصول إلى أقل من 100 مللي ثانية من زمن الاستجابة P99؟)

  • كانت فرق قواعد بيانات المتجهات مهتمة بالفعل

إجراء مقابلات مع الفرق لمعرفة المتطلبات ليس بالأمر الهيّن. سيصف الكثيرون احتياجاتهم من حيث كيفية حلهم للمشكلة حاليًا، والتحدي الذي يواجهك هو فهم هذا التحيز وإزالته.

على سبيل المثال، كان أحد الفرق يستخدم بالفعل FAISS للبحث عن ناقلات الشبكة الوسيطة وذكر أن الحل الجديد يجب أن يُرجع 10 آلاف نتيجة بكفاءة لكل استدعاء بحث. بعد مزيد من المناقشة، كان السبب في الحصول على 10 آلاف نتيجة هو أنهم كانوا بحاجة إلى إجراء تصفية لاحقة، ولا يوفر FAISS تصفية نتائج الشبكة العصبية الاصطناعية في وقت الاستعلام. كانت مشكلتهم الفعلية هي أنهم كانوا بحاجة إلى التصفية، لذا فإن أي حل يوفر تصفية فعالة سيكون كافياً، وكان إرجاع 10 آلاف نتيجة مجرد حل بديل مطلوب لتحسين عملية التذكر. كانوا يرغبون بشكل مثالي في التصفية المسبقة للمجموعة بأكملها قبل العثور على أقرب الجيران.

كما كان طلب قواعد بيانات المتجهات التي تستخدمها الفرق بالفعل أو مهتمة بها أمراً قيماً أيضاً. إذا كان لدى فريق واحد على الأقل وجهة نظر إيجابية عن الحل الحالي، فهذه علامة على أن قاعدة بيانات المتجهات يمكن أن تكون حلاً مفيداً يمكن مشاركته عبر الشركة بأكملها. إذا كان لدى الفرق وجهات نظر سلبية فقط عن الحل، فلا ينبغي أن ندرجه كخيار. كما أن قبول الحلول التي كانت الفرق مهتمة بها كان أيضًا وسيلة للتأكد من أن الفرق شعرت بأنها مشمولة في العملية وساعدنا في تشكيل قائمة أولية من المتنافسين الرئيسيين لتقييمها؛ فهناك الكثير من حلول البحث عن المتجهات في قواعد البيانات الجديدة والحالية في قواعد البيانات الجديدة والحالية بحيث لا يمكن اختبارها جميعًا بشكل شامل.

2. التقييم النوعي للحلول

بدءًا من قائمة الحلول التي كانت الفرق مهتمة بها، ولإجراء تقييم نوعي لحلول البحث عن متجهات الشبكة العصبية الاصطناعية التي تناسب احتياجاتنا بشكل أفضل، قمنا

  • بحثنا في كل حل وقمنا بتسجيل مدى استيفائه لكل متطلب مقابل الأهمية المرجحة لذلك المتطلب

  • إزالة الحلول بناءً على المعايير النوعية والمناقشة

  • اخترنا أفضل الحلول N لاختبارها كميًا

تضمنت قائمتنا الأولية لحلول البحث عن متجهات الشبكة العصبية الاصطناعية ما يلي:

  • ميلفوس

  • Qdrant

  • ويفييت

  • البحث المفتوح

  • Pgvector (يستخدم بالفعل Postgres كنظام إدارة محتوى رقمي RDBMS)

  • ريديس (مستخدم بالفعل كمخزن KV وذاكرة تخزين مؤقت)

  • كاساندرا (يستخدم بالفعل للبحث غير الشبكي)

  • Solr (يُستخدم بالفعل في البحث المعجمي وجرّب البحث المتجه)

  • فيسبا

  • بينيكون

  • Vertex AI (مستخدمة بالفعل للبحث عن متجهات الشبكة العصبية الاصطناعية)

ثم أخذنا بعد ذلك كل المتطلبات الوظيفية وغير الوظيفية التي ذكرتها الفرق، بالإضافة إلى بعض القيود الأخرى التي تمثل قيمنا وأهدافنا الهندسية، وقمنا بوضع هذه الصفوف في جدول بيانات، وقمنا بتقييم مدى أهميتها (من 1 إلى 3؛ كما هو موضح في الجدول المختصر أدناه).

بالنسبة لكل حل كنا نقارنه، قمنا بتقييم (على مقياس من 0 إلى 3) مدى تلبية كل نظام لهذا المطلب (كما هو موضح في الجدول أدناه). كان التقييم بهذه الطريقة غير موضوعي إلى حد ما، لذلك اخترنا نظامًا واحدًا وأعطينا أمثلة على الدرجات مع مبررات مكتوبة وجعلنا المراجعين يرجعون إلى تلك الأمثلة. قدمنا أيضًا الإرشادات التالية لتعيين قيمة كل درجة: قم بتعيين هذه القيمة إذا:

  • 0: لا يوجد دعم/دليل على دعم المتطلبات

  • 1: دعم أساسي أو غير كافٍ للمتطلبات.

  • 2: دعم المتطلبات بشكل معقول

  • 3: دعم المتطلبات القوي الذي يتجاوز الحلول المماثلة

ثم أنشأنا بعد ذلك درجة إجمالية لكل حل من خلال أخذ مجموع حاصل ضرب درجة دعم المتطلبات الخاصة بالحل وأهمية ذلك المتطلب (على سبيل المثال، حصل Qdrant على 3 درجات لإعادة الترتيب/التصنيف، والتي لها أهمية 2، لذا 3 × 2 = 6، كرر ذلك لجميع الصفوف وجمعها معًا). في النهاية، يكون لدينا نتيجة إجمالية يمكن استخدامها كأساس لترتيب الحلول ومناقشتها، وأي المتطلبات أكثر أهمية (لاحظ أن النتيجة لا تُستخدم لاتخاذ قرار نهائي ولكن كأداة للمناقشة).

ملاحظة المحرر: استندت هذه المراجعة إلى Milvus 2.4. لقد قمنا منذ ذلك الحين بطرح Milvus 2.5 و Milvus 2.6 و Milvus 3.0 على الأبواب، لذا قد تكون بعض الأرقام قديمة. ومع ذلك، لا تزال المقارنة تقدم رؤى قوية وتظل مفيدة للغاية.

الفئةالأهميةكيودرانتميلفوس (2.4)كاساندراويفييتسولرفيرتكس للذكاء الاصطناعي
نوع البحث
بحث هجين1320222
البحث عن الكلمات المفتاحية1222231
بحث تقريبي في الشبكة العصبية3332222
بحث المدى1332200
إعادة الترتيب/الجمع بين النتائج2320221
طريقة الفهرسة
HNSW3332220
يدعم طرق الفهرسة المتعددة3031211
التحويل الكمي1330300
التجزئة الحساسة للموقع (LSH)100ملاحظة: يدعمها Milvus 2.6. 0000
البيانات
أنواع المتجهات غير العائمة1220220
سمات البيانات الوصفية على المتجهات (تدعم سمات متعددة، وحجم سجل كبير، إلخ)3322221
خيارات تصفية البيانات الوصفية (يمكن التصفية على البيانات الوصفية، ولها تصفية قبل/بعد التصفية)2322232
أنواع بيانات سمة البيانات الوصفية (مخطط قوي، مثل bool، int، سلسلة، json، مصفوفات)1332231
حدود سمات البيانات الوصفية (استعلامات النطاق، على سبيل المثال 10 < س < 15)1332221
تنوع النتائج حسب السمة (على سبيل المثال الحصول على ما لا يزيد عن N نتائج من كل موقع فرعي في الرد)1212330
المقياس
مؤشر متجه مئات الملايين323123
مؤشر متجه المليار122122
متجهات الدعم 2k على الأقل2222211
متجهات الدعم أكبر من 2 ك2222111
زمن انتقال P95 من 50 إلى 100 مللي ثانية في الثانية X QPS3222112
زمن انتقال P99 <= 10 مللي ثانية عند X QPS3222312
99.9% استرجاع التوفر 99.9%2223222
توفر الفهرسة/التخزين بنسبة 99.99%2113222
عمليات التخزين
قابلة للاستضافة في AWS3222230
متعدد المناطق1123122
ترقيات وقت التعطيل الصفري1223221
متعدد السحابة1333220
واجهات برمجة التطبيقات/المكتبات
gRPC2222202
واجهة برمجة تطبيقات RESTful1322212
الذهاب للمكتبة3222212
مكتبة جافا2222222
بايثون2222222
لغات أخرى (C++، روبي، إلخ)1223222
عمليات وقت التشغيل
مقاييس بروميثيوس3222320
عمليات قاعدة البيانات الأساسية3222222
إدراج2222122
مشغل Kubernetes2222220
ترقيم الصفحات للنتائج2222220
تضمين البحث عن طريق المعرف2222222
إرجاع التضمينات مع معرف المرشح ودرجات المرشح1322222
المعرف المقدم من المستخدم2222222
القدرة على البحث في سياق دفعي واسع النطاق1211212
النسخ الاحتياطية / اللقطات: يدعم إمكانية إنشاء نسخ احتياطية لقاعدة البيانات بأكملها1222332
دعم الفهرس الكبير الفعال (التمييز بين التخزين البارد والساخن)1322212
الدعم/المجتمع
حياد البائعين3323230
دعم قوي لواجهة برمجة التطبيقات3332222
دعم البائعين2222220
سرعة المجتمع2322220
قاعدة مستخدمي الإنتاج2332212
شعور المجتمع1322221
نجوم جيثب1222220
التكوين
التعامل مع الأسرار2222122
المصدر
المصدر المفتوح3333230
اللغة2332320
الإصدارات2332222
اختبار المنبع1233222
توافر الوثائق3332121
التكلفة
فعالة من حيث التكلفة2222221
الأداء
دعم ضبط استخدام الموارد لوحدة المعالجة المركزية والذاكرة والقرص3222222
التجزئة متعددة العُقد (الحجرة)3223222
امتلاك القدرة على ضبط النظام لتحقيق التوازن بين زمن الاستجابة والإنتاجية2223222
التقسيم المحدد من قبل المستخدم (الكتابة)1323120
متعدد المستأجرين1321322
التقسيم2223222
النسخ المتماثل2223222
التكرار1223222
التجاوز التلقائي للفشل التلقائي320 ملاحظة: يدعمه Milvus 2.6. 3222
موازنة التحميل2223222
دعم وحدة معالجة الرسومات1020000
كدرانتميلفوسكاساندراويفييتسولرفيرتكس للذكاء الاصطناعي
النتائج الإجمالية للحلول292281264250242173

ناقشنا الدرجات الإجمالية والمتطلبات لمختلف الأنظمة، وسعينا إلى فهم ما إذا كنا قد قمنا بترجيح أهمية المتطلبات بشكل مناسب، وما إذا كانت بعض المتطلبات مهمة للغاية بحيث يجب اعتبارها قيودًا أساسية. كان أحد هذه المتطلبات التي حددناها هو ما إذا كان الحل مفتوح المصدر أم لا، لأننا كنا نرغب في حل يمكننا المشاركة فيه والمساهمة فيه وإصلاح المشاكل الصغيرة بسرعة إذا واجهنا مشاكل صغيرة على نطاقنا. المساهمة في البرمجيات مفتوحة المصدر واستخدامها جزء مهم من ثقافة Reddit الهندسية. وقد أدى ذلك إلى استبعاد الحلول المستضافة فقط (Vertex AI وPinecone) من حساباتنا.

خلال المناقشات، وجدنا أن بعض المتطلبات الرئيسية الأخرى كانت ذات أهمية كبيرة بالنسبة لنا:

  • النطاق والموثوقية: أردنا أن نرى دليلاً على وجود شركات أخرى تدير الحل مع أكثر من 100 مليون أو حتى 1 مليار ناقل

  • المجتمع: أردنا حلاً يتمتع بمجتمع سليم يتمتع بزخم كبير في هذا المجال سريع النضج

  • أنواع معبرة من البيانات الوصفية والتصفية لتمكين المزيد من حالات الاستخدام لدينا (التصفية حسب التاريخ أو حسب المنطقية أو غيرها)

  • دعم أنواع متعددة من الفهارس (وليس فقط HNSW أو DiskANN) لتناسب الأداء بشكل أفضل للعديد من حالات الاستخدام الفريدة لدينا

قادتنا نتيجة مناقشاتنا وصقلنا للمتطلبات الرئيسية إلى اختيار الاختبار (بالترتيب) الكمي

  1. Qdrant

  2. ميلفوس

  3. فيسبا، و

  4. ويفييت

لسوء الحظ، مثل هذه القرارات تستغرق وقتًا وموارد، ولا توجد منظمة لديها كميات غير محدودة من أي منهما. بالنظر إلى ميزانيتنا، قررنا اختبار Qdrant و Milvus، وتركنا اختبار Vespa و Weviate كأهداف ممتدة.

كما كان اختبار Qdrant مقابل Milvus اختبارًا مثيرًا للاهتمام بين بنيتين مختلفتين:

  • Qdrant أنواع العقد المتجانسة التي تؤدي جميع عمليات قاعدة بيانات ناقلات الشبكة الوطنية المتجهة

  • ميلفوس: أنواع عقد غير متجانسة (ميلفوس؛ واحدة للاستعلامات، وأخرى للفهرسة، وأخرى لاستيعاب البيانات، ووكيل، إلخ).

أيهما كان سهل الإعداد (اختبار لوثائقهما)؟ أيهما كان من السهل تشغيله (اختبار لميزات المرونة والصقل الخاصة بهم)؟ وأيهما أفضل أداء لحالات الاستخدام والحجم الذي يهمنا؟ هذه الأسئلة التي سعينا للإجابة عليها أثناء المقارنة الكمية بين الحلول.

3. التقييم الكمي لأفضل المتنافسين

أردنا أن نفهم بشكل أفضل مدى قابلية كل حل للتطوير، وفي هذه العملية، اختبرنا كيف سيكون إعداد كل حل وتكوينه وصيانته وتشغيله على نطاق واسع. للقيام بذلك، قمنا بجمع ثلاث مجموعات بيانات من متجهات المستندات والاستعلامات لثلاث حالات استخدام مختلفة، وقمنا بإعداد كل حل بموارد مماثلة داخل Kubernetes، وقمنا بتحميل المستندات في كل حل، وأرسلنا أحمال استعلام متطابقة باستخدام K6 من Grafana مع منفذ معدل وصول متزايد لتسخين الأنظمة قبل الوصول إلى الإنتاجية المستهدفة (على سبيل المثال، 100 QPS).

لقد اختبرنا الإنتاجية، ونقطة الانهيار لكل حل، والعلاقة بين الإنتاجية وزمن الوصول، وكيفية تفاعلها مع فقدان العُقد تحت الحمل (معدل الخطأ، وتأثير زمن الوصول، وما إلى ذلك). كان تأثير التصفية على زمن الكمون من أهم الأمور التي أثارت اهتمامنا. كان لدينا أيضًا اختبارات بسيطة بنعم/لا للتحقق من أن الإمكانية في الوثائق تعمل كما هو موصوف (على سبيل المثال، عمليات الإدراج والحذف والحصول على حسب المعرف وإدارة المستخدم، إلخ) ولتجربة بيئة العمل الخاصة بواجهات برمجة التطبيقات هذه.

تم إجراء الاختبار على Milvus v2.4 و Qdrant v1.12. ونظراً لضيق الوقت، لم نقم بضبط أو اختبار جميع أنواع إعدادات الفهرس بشكل شامل؛ تم استخدام إعدادات مماثلة مع كل حل، مع التحيز نحو استدعاء ANN عالٍ، وركزت الاختبارات على أداء فهارس HNSW. كما تم إعطاء موارد وحدة معالجة مركزية وذاكرة مماثلة لكل حل.

في تجاربنا، وجدنا بعض الاختلافات المثيرة للاهتمام بين الحلين. في التجارب التالية، كان لكل حل ما يقرب من 340 مليون متجه من متجهات رديت البريدية ذات 384 بُعدًا لكل منها، بالنسبة لـ HNSW، M=16، و efConstruction=100.

في إحدى التجارب، وجدنا أنه بالنسبة لنفس معدل إنتاجية الاستعلام (100 كيو بي إس مع عدم وجود استيعاب في نفس الوقت)، أثرت إضافة التصفية على زمن انتقال ميلفوس أكثر من Qdrant.

نشرات كمون الاستعلام مع التصفية

من ناحية أخرى، وجدنا أن هناك تفاعلاً أكبر بكثير بين الابتلاع وحمل الاستعلام على Qdrant مقارنةً بـ Milvus (كما هو موضح أدناه عند معدل إنتاجية ثابت). ويرجع هذا على الأرجح إلى بنيتها؛ حيث تقسم Milvus الكثير من عمليات الاستيعاب على أنواع عقد منفصلة عن تلك التي تخدم حركة الاستعلام، بينما تخدم Qdrant حركة الاستيعاب والاستعلام من نفس العقد.

نشر كمون الاستعلام بـ 100 QPS أثناء الاستيعاب

عند اختبار تنوع النتائج حسب السمة (على سبيل المثال الحصول على ما لا يزيد عن N من النتائج من كل موقع فرعي في الاستجابة)، وجدنا أنه بالنسبة لنفس الإنتاجية، كان زمن استجابة ميلفوس أسوأ من Qdrant (عند 100 QPS).

كمون ما بعد الاستعلام مع تنوع النتائج

أردنا أيضًا أن نرى مدى فعالية كل حل عند إضافة المزيد من النسخ المتماثلة للبيانات (أي زيادة عامل النسخ المتماثل، RF، من 1 إلى 2). في البداية، بالنظر إلى عامل التردد اللاسلكي = 1، كان Qdrant قادرًا على منحنا زمن استجابة مُرضٍ مقابل إنتاجية أكبر من Milvus (لم تظهر QPS الأعلى لأن الاختبارات لم تكتمل دون أخطاء).

ينشر Qdrant زمن استجابة RF=1 لمعدل كمون متفاوت للإنتاجية المتفاوتة

ينشر Milvus زمن استجابة = 1 لزمن انتقال لمعدل إنتاجية متفاوت

ومع ذلك، عند زيادة عامل النسخ المتماثل، تحسن زمن انتقال Qdrant p99، لكن Milvus كان قادرًا على الحفاظ على إنتاجية أعلى من Qdrant، مع زمن انتقال مقبول (لم يتم عرض Qdrant 400 QPS لأن الاختبار لم يكتمل بسبب زمن الانتقال العالي والأخطاء).

ينشر Milvus زمن استجابة RF=2 لزمن انتقال متفاوت للإنتاجية المتفاوتة

تنشر Qdrant زمن استجابة RF=2 لزمن انتقال متفاوت للإنتاجية المتفاوتة

نظرًا لضيق الوقت، لم يكن لدينا وقت كافٍ لمقارنة استدعاء الشبكة العصبية الاصطناعية بين الحلول على مجموعات البيانات الخاصة بنا، لكننا أخذنا في الاعتبار قياسات استدعاء الشبكة العصبية الاصطناعية للحلول المقدمة من https://ann-benchmarks.com/ على مجموعات البيانات المتاحة للجمهور.

4. الاختيار النهائي

منناحية الأداء، وبدون الكثير من الضبط وباستخدام HNSW فقط، بدا أن Qdrant يتمتع بزمن استجابة خام أفضل من Milvus في العديد من الاختبارات. ومع ذلك، بدا أن Milvus يبدو أنه سيتوسع بشكل أفضل مع زيادة النسخ المتماثل، وكان لديه عزل أفضل بين الاستيعاب وحمل الاستعلام بسبب بنيته متعددة العقد.

من ناحية التشغيل، على الرغم من تعقيد بنية ميلفوس (أنواع متعددة من العقد، والاعتماد على سجل خارجي للكتابة الأمامية مثل كافكا ومخزن بيانات وصفية مثل إلخd)، كان لدينا وقت أسهل في تصحيح أخطاء ميلفوس وإصلاحها مقارنةً ب Qdrant عندما يدخل أي من الحلين في حالة سيئة. يحتوي Milvus أيضًا على إعادة توازن تلقائية عند زيادة عامل النسخ المتماثل للمجموعة، بينما في Qdrant مفتوح المصدر، يلزم إنشاء أو إسقاط الأجزاء يدويًا لزيادة عامل النسخ المتماثل (وهي ميزة كان علينا أن نبنيها بأنفسنا أو نستخدم الإصدار غير مفتوح المصدر).

Milvus هي تقنية "على شكل ريديت" أكثر من Qdrant؛ فهي تشترك في أوجه تشابه أكثر مع بقية مجموعتنا التقنية. كُتبت Milvus بلغة Golang، وهي لغة البرمجة الخلفية المفضلة لدينا، وبالتالي يسهل علينا المساهمة فيها أكثر من Qdrant، المكتوبة بلغة Rust. ويتمتع Milvus بسرعة ممتازة في تنفيذ المشاريع في مشروعه المفتوح المصدر مقارنةً ب Qdrant، كما أنه يلبي المزيد من متطلباتنا الرئيسية.

في النهاية، استوفى كلا الحلين معظم متطلباتنا، وفي بعض الحالات، كان لدى Qdrant ميزة في الأداء، لكننا شعرنا أنه يمكننا توسيع نطاق Milvus بشكل أكبر، وشعرنا براحة أكبر في تشغيله، وكان أفضل تطابقًا لمؤسستنا من Qdrant. كنا نتمنى لو كان لدينا المزيد من الوقت لاختبار Vespa و Weaviate، ولكن ربما تم اختيارهما أيضًا بسبب الملاءمة التنظيمية (كون Vespa يعتمد على Java) والبنية (كون Weaviate من نوع العقدة الواحدة مثل Qdrant).

الوجبات الرئيسية

  • تحدي المتطلبات التي يتم إعطاؤك إياها ومحاولة إزالة التحيز للحلول الحالية.

  • قيّم الحلول المرشحة واستخدم ذلك لإثراء مناقشة المتطلبات الأساسية، وليس كحل نهائي

  • تقييم الحلول من الناحية الكمية، ولكن على طول الطريق، قم بتدوين ما يشبه العمل مع الحل

  • اختر الحل الأنسب لمؤسستك من منظور الصيانة والتكلفة وسهولة الاستخدام والأداء، وليس فقط لأن الحل هو الأفضل أداءً.

شكر وتقدير

قام بهذا العمل التقييم بن كوتشي وتشارلز نجوروجي وأميت كومار وأنا. كما نشكر الآخرين الذين ساهموا في هذا العمل، بما في ذلك آني يانغ، وكونراد رايش، وسابرينا كونغ، وأندرو جونسون، على البحث النوعي للحلول.

ملاحظات المحرر

نريد أن نقدم شكرًا حقيقيًا لفريق ريديت الهندسي - ليس فقط لاختيارهم ميلفوس لأعباء عمل البحث المتجه، ولكن أيضًا لتخصيصهم الوقت لنشر مثل هذا التقييم المفصل والعادل. من النادر أن نرى هذا المستوى من الشفافية في كيفية مقارنة الفرق الهندسية الحقيقية لقواعد البيانات، وستكون كتابتهم مفيدة لأي شخص في مجتمع ميلفوس (وخارجه) يحاول فهم مشهد قواعد البيانات المتجهة المتنامية.

كما ذكر كريس في المنشور، لا توجد قاعدة بيانات متجهة واحدة "أفضل". ما يهم هو ما إذا كان النظام يناسب عبء العمل والقيود والفلسفة التشغيلية. تعكس مقارنة ريديت هذا الواقع جيدًا. لا يتصدر ميلفوس كل فئة، وهذا متوقع تمامًا نظرًا للمفاضلة بين نماذج البيانات المختلفة وأهداف الأداء.

شيء واحد يستحق التوضيح: استخدم تقييم ريديت برنامج Milvus 2.4، والذي كان الإصدار المستقر في ذلك الوقت. بعض الميزات - مثل LSH والعديد من تحسينات الفهرس - إما أنها لم تكن موجودة بعد أو لم تكن ناضجة في الإصدار 2.4، لذا فإن بعض النتائج تعكس بطبيعة الحال ذلك الإصدار الأساسي الأقدم. منذ ذلك الحين، أصدرنا ميلفوس 2.5 ثم ميلفوس 2.6، وهو نظام مختلف تمامًا من حيث الأداء والكفاءة والمرونة. كانت استجابة المجتمع قوية، وقد قامت العديد من الفرق بالترقية بالفعل.

فيما يلي نظرة سريعة على الجديد في الإصدار 2.6 من ميلفوس:

  • استخدام أقل للذاكرة بنسبة تصل إلى 72% واستعلامات أسرع 4 مرات مع تكميم RaBitQ 1 بت

  • تخفيض التكلفة بنسبة 50% مع التخزين المتدرج الذكي

  • بحث في النص الكامل BM25 أسرع 4× 4 مرات مقارنة ب Elasticsearch

  • تصفية JSON أسرع 100× أسرع مع فهرس المسار الجديد

  • بنية جديدة خالية من الأقراص للبحث الأحدث بتكلفة أقل

  • سير عمل أبسط "إدخال البيانات وإخراجها" لتضمين خطوط الأنابيب

  • دعم لأكثر من 100 ألف مجموعة للتعامل مع البيئات الكبيرة متعددة المستأجرين

إذا كنت تريد التفاصيل الكاملة، فإليك بعض المتابعات الجيدة:

هل لديك أسئلة أو تريد التعمق في أي ميزة؟ انضم إلى قناة Discord الخاصة بنا أو قم بتسجيل المشكلات على GitHub. يمكنك أيضًا حجز جلسة فردية مدتها 20 دقيقة للحصول على رؤى وإرشادات وإجابات لأسئلتك من خلال ساعات عمل Milvus المكتبية.

    Try Managed Milvus for Free

    Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

    Get Started

    Like the article? Spread the word

    استمر في القراءة