• نبذة عن ميلفوس
  • ابدأ الآن
  • المفاهيم
  • دليل المستخدم
    • المجموعات
    • المخطط وحقول البيانات
    • إدراج وحذف
    • الفهارس
      • مؤشرات المتجهات العائمة
      • مؤشرات المتجهات الثنائية
      • فهارس المتجهات المتفرقة
      • الفهارس العددية
      • الفهارس الممكّنة لوحدة معالجة الرسومات
    • بحث
    • التضمين وإعادة التصنيف
    • تحسين التخزين
  • استيراد البيانات
  • أدوات الذكاء الاصطناعي
  • دليل الإدارة
  • الأدوات
  • عمليات الدمج
  • البرامج التعليمية
  • الأسئلة الشائعة
  • API Reference

STL_SORT

فهرس STL_SORT هو نوع فهرس مصمم خصيصًا لتحسين أداء الاستعلام على الحقول الرقمية (INT8، INT16، إلخ) أو حقول VARCHAR أو حقول TIMESTAMPTZ داخل Milvus من خلال تنظيم البيانات بترتيب مرتب.

استخدم الفهرس STL_SORT إذا كنت تقوم بتشغيل الاستعلامات بشكل متكرر مع:

  • تصفية المقارنة باستخدام == و != و و > و < و >= و <=

  • تصفية النطاق باستخدام المشغلين IN و LIKE

أنواع البيانات المدعومة

  • حقول رقمية (على سبيل المثال، INT8 ، INT16 ، ، INT32 ، INT64 ، FLOAT ، DOUBLE). لمزيد من التفاصيل، راجع الحقول المنطقية والعددية.

  • VARCHAR الحقول. لمزيد من التفاصيل، راجع حقول السلسلة.

  • TIMESTAMPTZ الحقول. لمزيد من التفاصيل، راجع حقل TIMESTAMPTZ.

كيف يعمل

ينفذ ميلفوس STL_SORT على مرحلتين:

  1. بناء الفهرس

    • أثناء الاستيعاب، يجمع Milvus جميع القيم للحقل المفهرس.

    • يتم فرز القيم بترتيب تصاعدي باستخدام std:::sort الخاص بـ C++ STL.

    • يتم إقران كل قيمة بمعرف الكيان الخاص بها، ويتم استمرار المصفوفة المصنفة كفهرس.

  2. تسريع الاستعلامات

    • في وقت الاستعلام، يستخدم Milvus بحثًا ثنائيًا(std::Lower_bound و std::upper_bound) على المصفوفة المصنفة.

    • بالنسبة للتساوي، يعثر ميلفوس بسرعة على جميع القيم المطابقة.

    • بالنسبة للنطاقات، يحدد Milvus موقعي البداية والنهاية ويعيد جميع القيم بينهما.

    • يتم تمرير معرفات الكيانات المطابقة إلى منفذ الاستعلام لتجميع النتائج النهائية.

يقلل ذلك من تعقيد الاستعلام من O(n) (مسح كامل) إلى O(log n + m)، حيث m هو عدد مرات التطابق.

إنشاء فهرس STL_SORT

يمكنك إنشاء فهرس STL_SORT على حقل رقمي أو TIMESTAMPTZ. لا توجد معلمات إضافية مطلوبة.

يوضح المثال أدناه كيفية إنشاء فهرس STL_SORT على حقل TIMESTAMPTZ:

from pymilvus import MilvusClient

client = MilvusClient(uri="http://localhost:19530") # Replace with your server address

# Assume you have defined a TIMESTAMPTZ field named "tsz" in your collection schema

# Prepare index parameters
index_params = client.prepare_index_params()

# Add RTREE index on the "tsz" field
index_params.add_index(
    field_name="tsz",
    index_type="STL_SORT",   # Index for TIMESTAMPTZ
    index_name="tsz_index",  # Optional, name your index
    params={}                # No extra params needed
)

# Create the index on the collection
client.create_index(
    collection_name="tsz_demo",
    index_params=index_params
)

إسقاط فهرس

استخدم الأسلوب drop_index() لإزالة فهرس موجود من مجموعة.

client.drop_index(
    collection_name="tsz_demo",   # Name of the collection
    index_name="tsz_index" # Name of the index to drop
)

ملاحظات الاستخدام

  • أنواع الحقول: يعمل مع الحقول الرقمية و TIMESTAMPTZ. للمزيد من المعلومات حول أنواع البيانات، راجع الحقل المنطقي والرقمي وحقل TIMESTAMPTZ.

  • المعلمات: لا حاجة إلى معلمات فهرس.

  • Mmap غير مدعوم: وضع تعيين الذاكرة غير متاح لـ STL_SORT.

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟