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

مقلوب

عندما تحتاج إلى إجراء استعلامات تصفية متكررة على بياناتك، يمكن للفهارس INVERTED تحسين أداء الاستعلام بشكل كبير. بدلاً من المسح من خلال جميع المستندات، يستخدم Milvus الفهارس المقلوبة لتحديد موقع السجلات الدقيقة التي تطابق شروط التصفية الخاصة بك بسرعة.

متى تستخدم الفهارس المقلوبة

استخدم الفهارس المقلوبة عندما تحتاج إلى:

  • التصفية حسب قيم محددة: البحث عن جميع السجلات التي يساوي فيها حقل ما قيمة محددة (على سبيل المثال، category == "electronics")

  • تصفية المحتوى النصي: إجراء عمليات بحث فعالة على VARCHAR الحقول

  • الاستعلام عن قيم حقول JSON: تصفية على مفاتيح محددة داخل هياكل JSON

فائدة الأداء: يمكن للفهارس INVERTED تقليل وقت الاستعلام من ثوانٍ إلى أجزاء من الثانية على مجموعات البيانات الكبيرة من خلال إلغاء الحاجة إلى عمليات مسح المجموعة الكاملة.

كيفية عمل الفهارس المقلوبة

يقوم فهرس INVERTED في Milvus بتعيين كل قيمة حقل فريد (مصطلح) إلى مجموعة معرّفات المستندات التي تظهر فيها تلك القيمة. تتيح هذه البنية إمكانية البحث السريع عن الحقول ذات القيم المتكررة أو الفئوية.

كما هو موضح في الرسم البياني، تعمل العملية في خطوتين:

  1. التعيين الأمامي (المعرف ← المصطلح): يشير كل معرّف مستند إلى قيمة الحقل الذي يحتوي عليه.

  2. التعيين المقلوب (المصطلح → المعرفات): يجمع Milvus المصطلحات الفريدة ويبني تعيينًا معكوسًا من كل مصطلح إلى جميع المعرفات التي تحتوي عليه.

على سبيل المثال، يتم تعيين القيمة "إلكترونيات" إلى المعرفين 1 و3، بينما يتم تعيين "كتب" إلى المعرفين 2 و5.

How Inverted Index Works كيف يعمل الفهرس المعكوس

عندما تقوم بالتصفية بحثًا عن قيمة معينة (على سبيل المثال، category == "electronics")، يبحث Milvus ببساطة عن المصطلح في الفهرس ويسترجع المعرفات المطابقة مباشرة. هذا يتجنب مسح مجموعة البيانات الكاملة ويتيح التصفية السريعة، خاصةً للقيم الفئوية أو المتكررة.

تدعم الفهارس INVERTED جميع أنواع الحقول القياسية، مثل BOOL و INT8 و INT16 و INT16 و INT32 و INT64 و FLOAT و FLOAT و DOUBLE و VARCHAR و JSON و ARRAY. ومع ذلك، فإن معلمات الفهرس لفهرسة حقل JSON تختلف قليلاً عن الحقول العددية العادية.

إنشاء فهارس على حقول غير JSON

لإنشاء فهرس على حقل غير JSON، اتبع الخطوات التالية:

  1. قم بإعداد معلمات الفهرس:

    from pymilvus import MilvusClient
    
    client = MilvusClient(uri="http://localhost:19530") # Replace with your server address
    
    # Create an empty index parameter object
    index_params = client.prepare_index_params()
    
  2. أضف الفهرس INVERTED:

    index_params.add_index(
        field_name="category",           # Name of the field to index
        index_type="INVERTED",          # Specify INVERTED index type
        index_name="category_index"     # Give your index a name
    )
    
  3. إنشاء الفهرس:

    client.create_index(
        collection_name="my_collection", # Replace with your collection name
        index_params=index_params
    )
    

إنشاء فهارس على حقول JSONCompatible with Milvus 2.5.11+

يمكنك أيضًا إنشاء فهارس INVERTED على مسارات محددة داخل حقول JSON. يتطلب ذلك معلمات إضافية لتحديد مسار JSON ونوع البيانات:

# Build index params
index_params.add_index(
    field_name="metadata",                    # JSON field name
    index_type="INVERTED",
    index_name="metadata_category_index",
    params={
        "json_path": "metadata[\"category\"]",    # Path to the JSON key
        "json_cast_type": "varchar"              # Data type to cast to during indexing
    }
)

# Create index
client.create_index(
    collection_name="my_collection", # Replace with your collection name
    index_params=index_params
)

للحصول على معلومات مفصلة حول فهرسة حقول JSON، بما في ذلك المسارات المدعومة وأنواع البيانات والقيود المفروضة عليها، راجع فهرسة JSON.

إسقاط فهرس

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

  • في الإصدار 2.6.3 أو الإصدار 2.6.3 أو الإصدار الأقدم، يجب عليك تحرير المجموعة قبل إسقاط فهرس قياسي.

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

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

أفضل الممارسات

  • إنشاء فهارس بعد تحميل البيانات: أنشئ فهارس على المجموعات التي تحتوي بالفعل على بيانات لتحسين الأداء

  • استخدم أسماء فهارس وصفية: اختر أسماء تشير بوضوح إلى الحقل والغرض منه

  • مراقبة أداء الفهرس: تحقق من أداء الاستعلام قبل وبعد إنشاء الفهارس.

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

الخطوات التالية

جرب Managed Milvus مجاناً

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

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

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