الفهرس القياسي
يدعم Milvus عمليات البحث المفهرسة التي تجمع بين الحقول القياسية والمتجهة. ولتعزيز كفاءة عمليات البحث التي تتضمن حقولاً قياسية، قدم ميلفوس فهرسة الحقول القياسية بدءاً من الإصدار 2.1.0. تقدم هذه المقالة لمحة عامة عن فهرسة الحقول القياسية في ملفوس، مما يساعدك على فهم أهميتها وتنفيذها.
نظرة عامة
بمجرد إجراء عمليات البحث عن تشابه المتجهات في Milvus، يمكنك استخدام العوامل المنطقية لتنظيم الحقول القياسية في تعبيرات منطقية.
عندما يتلقى Milvus طلب بحث بتعبير منطقي كهذا، فإنه يقوم بتحليل التعبير المنطقي إلى شجرة بناء الجملة المجردة (AST) لإنشاء خطة فعلية لتصفية السمات. ثم يطبق Milvus الخطة الفيزيائية في كل جزء لتوليد مجموعة بتات كنتيجة للتصفية ويتضمن النتيجة كمعامل بحث متجه لتضييق نطاق البحث. في هذه الحالة، تعتمد سرعة عمليات البحث المتجه بشكل كبير على سرعة تصفية السمة.
تصفية السمة في مقطع
تعد فهرسة الحقول العددية طريقة لضمان سرعة تصفية السمات من خلال فرز قيم الحقول العددية بطريقة معينة لتسريع استرجاع المعلومات.
خوارزميات فهرسة الحقول العددية
يهدف ميلفوس إلى تحقيق استخدام منخفض للذاكرة، وكفاءة تصفية عالية، ووقت تحميل قصير من خلال خوارزميات فهرسة الحقول العددية. تصنف هذه الخوارزميات إلى نوعين رئيسيين: الفهرسة التلقائية والفهرسة المقلوبة.
الفهرسة التلقائية
يوفر ميلفوس الخيار AUTOINDEX
لتحريرك من الاضطرار إلى اختيار نوع الفهرسة يدويًا. عند استدعاء طريقة create_index
، إذا لم يتم تحديد index_type
، يقوم ميلفوس تلقائيًا باختيار نوع الفهرسة الأنسب بناءً على نوع البيانات.
يسرد الجدول التالي أنواع البيانات التي يدعمها Milvus وخوارزميات الفهرسة التلقائية المقابلة لها.
نوع البيانات | خوارزمية الفهرسة التلقائية |
---|---|
فهرس مقلوب | فهرس مقلوب |
INT8 | فهرس مقلوب |
INT16 | فهرس مقلوب |
INT32 | فهرس مقلوب |
INT64 | فهرس مقلوب |
فهرس مسطح | فهرس مقلوب |
مزدوج | فهرس مقلوب |
الفهرسة المقلوبة
توفر الفهرسة المقلوبة طريقة مرنة لإنشاء فهرس لحقل قياسي عن طريق تحديد معلمات الفهرس يدويًا. تعمل هذه الطريقة بشكل جيد مع سيناريوهات مختلفة، بما في ذلك الاستعلامات النقطية، واستعلامات مطابقة الأنماط، وعمليات البحث عن النص الكامل، وعمليات البحث عن JSON، وعمليات البحث المنطقي، وحتى استعلامات مطابقة البادئة.
يتم تشغيل الفهارس المقلوبة التي تم تنفيذها في Milvus بواسطة Tantivy، وهي مكتبة محرك بحث النص الكامل. تضمن Tantivy أن تكون الفهرسة المقلوبة في Milvus فعالة وسريعة.
يحتوي الفهرس المقلوب على عنصرين رئيسيين: قاموس المصطلح والقائمة المقلوبة. يتضمن قاموس المصطلحات جميع الكلمات الرمزية مرتبة أبجديًا، بينما تحتوي القائمة المقلوبة على قائمة المستندات التي تظهر فيها كل كلمة. هذا الإعداد يجعل الاستعلامات النقطية واستعلامات النطاق أسرع بكثير وأكثر كفاءة من عمليات البحث الغاشمة.
مخطط الفهرس المقلوب
تتضح مزايا استخدام الفهرس المقلوب بشكل خاص في العمليات التالية:
- الاستعلام النقطي: على سبيل المثال، عند البحث عن المستندات التي تحتوي على كلمة Milvus، تبدأ العملية بالتحقق مما إذا كانت كلمة Milvus موجودة في قاموس المصطلح. إذا لم يتم العثور عليها، فلا توجد مستندات تحتوي على الكلمة. ومع ذلك، إذا تم العثور عليها، يتم استرجاع القائمة المقلوبة المرتبطة بكلمة Milvus، مع الإشارة إلى المستندات التي تحتوي على الكلمة. تعد هذه الطريقة أكثر كفاءة بكثير من البحث بالقوة الغاشمة من خلال مليون مستند، حيث يقلل قاموس المصطلحات المصنفة بشكل كبير من تعقيدات الوقت اللازم للعثور على كلمة Milvus.
- استعلام النطاق: يتم أيضًا تعزيز كفاءة استعلامات النطاق، مثل العثور على المستندات التي تحتوي على كلمات أكبر من جدا أبجديًا، من خلال قاموس المصطلحات المصنفة. يعد هذا النهج أكثر كفاءة من البحث الفوري، مما يوفر نتائج أسرع وأكثر دقة.
نتائج الاختبار
لتوضيح التحسينات في الأداء التي توفرها الفهارس القياسية في ميلفوس، تم إجراء تجربة تقارن أداء العديد من التعبيرات باستخدام الفهرسة المقلوبة والبحث بالقوة الغاشمة على البيانات الأولية.
تضمنت التجربة اختبار تعبيرات مختلفة في ظل شرطين: باستخدام فهرس مقلوب وبحث بالقوة الغاشمة. لضمان العدالة، تم الحفاظ على نفس توزيع البيانات عبر الاختبارات، باستخدام نفس المجموعة في كل مرة. قبل كل اختبار، تم تحرير المجموعة، وتم إسقاط الفهرس وإعادة بنائه. بالإضافة إلى ذلك، تم إجراء استعلام دافئ قبل كل اختبار لتقليل تأثير البيانات الباردة والساخنة، وتم تنفيذ كل استعلام عدة مرات لضمان الدقة.
بالنسبة لمجموعة بيانات مكونة من مليون سجل، يمكن أن يوفر استخدام فهرس مقلوب ما يصل إلى 30 ضعفًا من الأداء للاستعلامات النقطية. يمكن أن تكون مكاسب الأداء أكثر أهمية بالنسبة لمجموعات البيانات الأكبر حجمًا.
توصيات الأداء
للاستفادة الكاملة من قدرة Milvus في فهرسة الحقول القياسية وإطلاق العنان لقوته في عمليات البحث عن التشابه المتجه، قد تحتاج إلى نموذج لتقدير حجم الذاكرة المطلوبة بناءً على البيانات التي لديك.
تسرد الجداول التالية وظائف التقدير لجميع أنواع البيانات التي يدعمها ملفوس.
الحقول العددية
نوع البيانات دالة تقدير الذاكرة (ميغابايت) INT8 numOfRows * 12 / 1024 / 1024 INT16 عدد الصفوف * 12/1024 / 1024 / 1024 INT32 عدد الصفوف * 12 / 1024 / 1024 / 1024 INT64 numOfRows * 24 / 1024 / 1024 / 1024 FLOAT32 عدد الصفوف * 12 / 1024 / 1024 / 1024 مزدوج عدد الصفوف * 24 / 1024 / 1024 / 1024 حقول السلسلة
طول السلسلة دالة تقدير الذاكرة (ميغابايت) (0, 8] numOfRows * 128 / 1024 / 1024 (8, 16] عدد الصفوف * 144 / 1024 / 1024 / 1024 (16, 32] عدد الصفوف * 160 / 1024 / 1024 / 1024 (32, 64] عدد الصفوف * 192 / 1024 / 1024 / 1024 (64, 128] عدد الصفوف * 256 / 1024 / 1024 / 1024 (128, 65535] numOfRows * strLen * 1.5 / 1024 / 1024
ما التالي
لفهرسة حقل عدد ثابت، اقرأ إنشاء فهرس على عدد ثابت.
لمعرفة المزيد حول المصطلحات والقواعد ذات الصلة المذكورة أعلاه، اقرأ