تعديل مخطط المجموعة الخارجيةCompatible with Milvus 3.0.x

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

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

القيود

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

  • يمكنك فقط إضافة حقل موجود بالفعل في مصدر البيانات الخارجي. تعمل هذه العملية على ربط حقل خارجي موجود بحقل في Milvus. ولا تؤدي إلى إنشاء حقل جديد في مصدر البيانات الخارجي أو ملء البيانات المصدر بأثر رجعي.

  • لا يتم دعم إضافة حقول SPARSE_FLOAT_VECTOR إلى مجموعة خارجية موجودة.

  • لا يتم دعم إضافة حقول StructArray إلى مجموعة خارجية موجودة. إذا كانت مجموعتك الخارجية تحتاج إلى حقل StructArray، فقم بتعريفه في مخطط المجموعة عند إنشاء المجموعة.

إضافة حقل

قبل إضافة حقل إلى مجموعة خارجية، تحقق من أن الحقل موجود بالفعل في مصدر البيانات الخارجي. ثم استدعِ ` add_collection_field() ` لعرض هذا الحقل في Milvus عن طريق تعيين ` external_field ` إلى اسم الحقل في مصدر البيانات الخارجي. عيّن ` data_type ` إلى نوع بيانات Milvus الذي يطابق الحقل في مصدر البيانات الخارجي. على سبيل المثال، إذا كان الحقل المُعَدَّل يخزن قيمًا ذات دقة مزدوجة، فاستخدم ` DataType.DOUBLE`.

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

إضافة حقل قياسي

استخدم add_collection_field() لإضافة حقل قياسي عندما تريد إرجاع الحقل في نتائج الاستعلام أو استخدامه في عوامل التصفية. يضيف المثال التالي حقل score الذي يتم تعيينه إلى الحقل score في مصدر البيانات الخارجي.

from pymilvus import DataType, MilvusClient

client = MilvusClient(
    uri="http://localhost:19530",
    token="root:Milvus",
)

client.add_collection_field(
    collection_name="product_embeddings",
    field_name="score",
    data_type=DataType.DOUBLE,
    nullable=True,
    external_field="score",
)

في هذا المثال، يُعد « score » اسم الحقل في Milvus، ويقوم « external_field="score" » بربطه بحقل « score » في مصدر البيانات الخارجي. قم بتعيين « nullable=True » لأن الحقل تمت إضافته بعد إنشاء المجموعة بالفعل.

إضافة حقل متجه

يمكنك أيضًا إضافة حقل متجه إذا كان مصدر البيانات الخارجي يحتوي بالفعل على قيم متجهة. قم بتعيين المتجه data_type و dim بحيث يتطابقان مع الحقل المتجه في مصدر البيانات الخارجي.

يضيف المثال التالي حقل متجه كثيفًا باسم image_embedding_v2.

from pymilvus import DataType, MilvusClient

client = MilvusClient(
    uri="http://localhost:19530",
    token="root:Milvus",
)

client.add_collection_field(
    collection_name="product_embeddings",
    field_name="image_embedding_v2",
    data_type=DataType.FLOAT_VECTOR,
    dim=768,
    nullable=True,
    external_field="image_embedding_v2",
)

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

index_params = client.prepare_index_params()

index_params.add_index(
    field_name="image_embedding_v2",
    index_type="AUTOINDEX",
    metric_type="COSINE",
)

client.create_index(
    collection_name="product_embeddings",
    index_params=index_params,
)

تحديث المجموعة الخارجية

بعد تعديل مخطط المجموعة الخارجية، قم بتحديث المجموعة الخارجية حتى يقوم Milvus بتحديث بيانات تعريف المجموعة الخارجية وتفعيل تغيير المخطط في نتائج الاستعلام والبحث والتصفية.

client.refresh_external_collection(
    collection_name="product_embeddings"
)

ترجمة بواسطةDeepL

جرب Managed Milvus مجاناً

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

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

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