حدود StructArray

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

تأتي معظم حدود StructArray من أحد ثلاثة مصادر: نموذج مخطط StructArray، ووضع البحث الذي تختاره لحقول المتجهات الفرعية، وإصدار Milvus الذي تعمل عليه مجموعتك.

نظرة عامة على الحدود

المجالالحد
شكل المخططلا يمكن استخدام Struct إلا كنوع عنصر لحقل Array. لا يتم دعم Struct كحقل مجموعة من المستوى الأعلى.
مخطط الحقل الفرعيتشترك جميع عناصر Struct الموجودة في حقل StructArray نفسه في مخطط Struct واحد محدد مسبقًا.
السعةmax_capacity مطلوب ويحدد عدد عناصر Struct التي يمكن لكيان واحد تخزينها في حقل StructArray.
تغييرات الحقول الفرعيةبعد إنشاء حقل StructArray، لا يمكنك إضافة حقول فرعية إلى حقل StructArray الموجود.
مسار الحقل الفرعياستخدم مسارات structArray[subfield] ، مثل chunks[emb] ، للفهارس وأهداف البحث وحقول الإخراج والمرشحات. لا تستخدم chunks.emb.
إدراج الشكلأدخل حقل StructArray كمصفوفة من الكائنات. لا تستخدم صيغة المسار داخل حمولات الإدراج.
فهارس المتجهاتيقبل حقل المتجه أو الحقل الفرعي للمتجه فهرسًا واحدًا فقط. استخدم حقولًا فرعية منفصلة للمتجه للبحث في EmbeddingList والبحث على مستوى العناصر.
الدواللا يتم دعم وظائف الحقول للحقول أو الحقول الفرعية داخل حقل StructArray.
الحقول القابلة للقيمة الفارغةتخضع حقول StructArray القابلة للقيمة الفارغة لقيود الإصدار. وعندما تكون مدعومة، تنطبق القيمة الفارغة على حقل StructArray بأكمله، وليس على عنصر Struct فردي بشكل مستقل.
حقل الإضافة الديناميكيتخضع إضافة حقل StructArray إلى مجموعة موجودة للإصدار وتتطلب أن يكون الحقل المضاف قابلاً للقيمة الفارغة.

حدود المخطط

الحدالتفاصيل
Struct ليس نوع حقل من المستوى الأعلى.قم بإنشاء حقل StructArray كـ " datatype=DataType.ARRAY " مع " element_type=DataType.STRUCT " و" struct_schema".
تشترك جميع العناصر في مخطط واحد.يتبع كل عنصر Struct في حقل StructArray نفس قائمة الحقول الفرعية وأنواع بيانات الحقول الفرعية.
max_capacity مطلوب.يجب ألا يتجاوز عدد عناصر Struct في كيان واحد عدد max_capacity المُعد لحقل StructArray.
الحقول الفرعية الحالية ثابتة.لا يمكنك إضافة حقول فرعية جديدة إلى حقل StructArray موجود. لتغيير مخطط الحقول الفرعية، قم بإزالة حقل StructArray ثم أضفه مرة أخرى باستخدام المخطط المحدث.
لا يتم دعم StructArray المتداخل.لا يمكن أن يحتوي حقل StructArray على حقول فرعية متداخلة من نوع Array أو ArrayOfVector أو Struct أو ArrayOfStruct.
لا يتم دعم الدوال داخل StructArray.لا تقم بتعريف دوال الحقول لحقول StructArray أو حقولها الفرعية.

للاطلاع على أمثلة لإنشاء المخطط، راجع إنشاء حقل StructArray.

أنواع بيانات الحقول الفرعية المدعومة

يتم تعيين الحقول الفرعية لـ StructArray إلى تخزين مادي بنمط المصفوفة. يسرد الجدول التالي الأنواع المادية المدعومة وغير المدعومة.

النوع المادي للحقل الفرعي في Structالدعمملاحظات
Arrayمدعومقم بتعريف الحقل الفرعي على النحو التالي: DataType.BOOL.
Arrayمدعومحدد الحقل الفرعي على أنه DataType.INT8 أو DataType.INT16 أو DataType.INT32 أو DataType.INT64.
Arrayمدعومحدد الحقل الفرعي على أنه DataType.FLOAT أو DataType.DOUBLE.
Arrayمدعومحدد الحقل الفرعي على أنه DataType.VARCHAR وقم بتعيين max_length.
ArrayOfVectorمدعومحدد الحقل الفرعي على أنه DataType.FLOAT_VECTOR وقم بتعيين dim.
ArrayOfVectorمدعومحدد الحقل الفرعي على أنه DataType.FLOAT16_VECTOR وقم بتعيين dim.
ArrayOfVectorمدعومحدد الحقل الفرعي على أنه DataType.BFLOAT16_VECTOR وقم بتعيين dim.
ArrayOfVectorمدعومحدد الحقل الفرعي على أنه DataType.INT8_VECTOR وقم بتعيين dim.
ArrayOfVectorمدعومحدد الحقل الفرعي على أنه DataType.BINARY_VECTOR وقم بتعيين dim.
ArrayOfVectorغير مدعوملا يتم دعم الحقول الفرعية للمتجهات المتفرقة في حقول StructArray.
Arrayغير مدعوماستخدم VARCHAR ، وليس String.
Arrayغير مدعوملا يتم دعم الحقول الفرعية JSON في حقول StructArray.
Arrayغير مدعومالحقول الفرعية للهندسة ووظائف نظم المعلومات الجغرافية (GIS) غير مدعومة في حقول StructArray.
Arrayغير مدعومالحقول الفرعية النصية غير مدعومة في حقول StructArray.
Arrayغير مدعومالحقول الفرعية من نوع Timestamptz والتعبيرات المرتبطة بوقت محدد غير مدعومة في حقول StructArray.
Array أو ArrayOfVector أو Struct أو ArrayOfStructغير مدعوملا تدعم حقول StructArray الحقول الفرعية المتداخلة من نوع المصفوفة أو المصفوفة المتجهة أو Struct أو Array-of-Struct.

حدود المخطط القابل للفراغ والديناميكي

يعتمد سلوك StructArray القابل للقيمة الفارغة وإضافة حقول StructArray الديناميكية على الإصدار.

القدرةالحد
حقل StructArray القابل للإفراغمدعوم في Milvus 3.0.0 والإصدارات الأحدث. قم بتعيين nullable=True على الكائن الأصلي لـ StructArray؛ ولا تقم بتكوين الحقول الفرعية لـ Struct على أنها قابلة للفراغ بشكل مستقل.
القيمة الفارغة في Pythonاستخدم None لإدراج قيمة StructArray فارغة في Python. لا تستخدم Null أو null.
نطاق القيمة الفارغةتنطبق القيمة الفارغة على حقل StructArray بأكمله. على سبيل المثال، chunks=None صالحة فقط عندما يكون chunks قابلاً للقيمة الفارغة.
قيمة StructArray "null" جزئيًاعندما يحتوي حقل StructArray على قيمة صفيف صالحة، لا تخلط صفيفات الحقول الفرعية التي يمكن أن تكون null مع صفيفات الحقول الفرعية الصالحة في نفس القيمة.
إضافة حقل StructArray ديناميكيًامدعوم في Milvus 3.0.0 والإصدارات الأحدث.
متطلبات القابلية للقيمة الفارغة للإضافة الديناميكيةيجب أن يكون حقل StructArray المضاف إلى مجموعة موجودة قابلاً للقيمة null لأن الكيانات الموجودة لا تحتوي على قيمة للحقل الجديد.
الكيانات الموجودة بعد الإضافة الديناميكيةتُرجع الكيانات الموجودة قيمة " null " للحقل StructArray المضاف.

يدعم Milvus 3.0.0 والإصدارات الأحدث حقول StructArray القابلة للقيمة الفارغة، ومصفوفات المتجهات القابلة للقيمة الفارغة، والإضافة الديناميكية لحقول StructArray في كل من عمليات النشر المستقلة والموزعة. لا تدعم إصدارات Milvus السابقة هذه الإمكانيات.

في Zilliz Cloud، تتوفر هذه الإمكانيات على المجموعات حسب الطلب (On-Demand Clusters) التي تعمل بنظام Milvus 3.0.0 أو أحدث. ولا تدعمها مجموعات الخدمة (Serving Clusters).

للاطلاع على أمثلة الإدراج التي تحتوي على حقول StructArray القابلة للقيمة null، راجع إدراج البيانات في حقول StructArray.

حدود الإدراج

الحدالتفاصيل
شكل الحمولةأدخل حقل StructArray كمصفوفة من كائنات Struct، مثل chunks: [{"text": "...", "emb": [...]}].
أسماء الحقول الفرعيةداخل كل كائن Struct، استخدم أسماء الحقول الفرعية مثل text و emb ، وليس المسارات مثل chunks[text].
مواءمة المخططيجب أن يتطابق كل عنصر Struct مع مخطط Struct.
السعةيجب ألا يتجاوز عدد عناصر Struct في كيان واحد max_capacity.
أبعاد المتجهيجب أن تتطابق قيم المتجهات مع dim المُعدة لحقولها الفرعية المتجهة.
تكرار في وضع البحثإذا كنت بحاجة إلى كل من البحث في قائمة التضمين (EmbeddingList) والبحث على مستوى العناصر، فاكتب المتجهات في حقلين فرعيين منفصلين للمتجهات.

حدود الفهرس والمقياس

يمكن فهرسة حقل فرعي متجه من نوع StructArray إما للبحث في EmbeddingList أو للبحث على مستوى العناصر. ولا يمكن لنفس الحقل الفرعي المتجه استخدام مجموعتي المقاييس معًا لأن كل حقل متجه أو حقل فرعي متجه لا يقبل سوى فهرس واحد.

وضع البحثعائلة المقاييسمستوى النتيجة
البحث في EmbeddingListMAX_SIM، أو مقاييس MAX_SIM_COSINE ، أو MAX_SIM_IP ، أو MAX_SIM_L2 ، أو المقاييس الثنائية MAX_SIM_* نتائج على مستوى الكيان.
البحث على مستوى العناصرمقاييس متجهة عادية مثل L2 ، IP ، COSINE ، HAMMING ، أو JACCARDنتائج على مستوى العنصر التي يمكن أن تتضمن إزاحة العنصر المطابق.

استخدم حقول فرعية متجهة منفصلة عندما يكون كلا الوضعين مطلوبين. على سبيل المثال، استخدم chunks[emb_list_vector] للبحث في EmbeddingList و chunks[emb] للبحث على مستوى العنصر.

تُعتبر الحقول الفرعية للمتجهات في StructArray حقولًا فرعية للمتجهات عند تخطيط مخطط المجموعة. حافظ على إجمالي عدد حقول المتجهات والحقول الفرعية للمتجهات ضمن حدود الإصدار المستهدف ومستوى الخدمة.

للاطلاع على مصفوفة أنواع الفهارس وأنواع المقاييس المدعومة، راجع حقول StructArray للفهرس.

حدود البحث

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

حدود التصفية والمشغلات

تتم معالجة تصفية القيم العددية لـ StructArray بواسطة عوامل StructArray، مثل element_filter ومجموعة MATCH_*. توجد مصفوفة دعم المسندات التفصيلية في StructArray Operators.

على مستوى عام:

  • استخدم $[subfield] فقط داخل مشغلات StructArray.

  • استخدم الحقول الفرعية القياسية للمسلّطات القياسية.

  • لا تستخدم الحقول الفرعية المتجهة كمدخلات للمسلّطات القياسية في $[...].

  • لا يتم دعم صيغة مسار JSON، ووظائف JSON، ووظائف حاويات المصفوفات، ووظائف مطابقة النص، ووظائف الهندسة / نظم المعلومات الجغرافية، وتعبيرات Timestamptz للمسلّطات على مستوى عناصر StructArray.

  • يفضل استخدام المقارنات المنطقية الصريحة مثل $[has_code] == true بدلاً من التعبيرات المنطقية المجردة.

  1. لإنشاء حقل StructArray، اقرأ إنشاء حقل StructArray.

  2. لإدراج البيانات، اقرأ " إدراج البيانات في حقول StructArray".

  3. لإنشاء فهارس متجهة وقيمية، اقرأ «فهرسة حقول StructArray».

  4. لمراجعة صيغة مرشح StructArray، اقرأ " عوامل StructArray".

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

جرب Managed Milvus مجاناً

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

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

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