مشغلات المصفوفات
يوفر Milvus مشغلات قوية للاستعلام عن حقول المصفوفات، مما يسمح لك بتصفية الكيانات واسترجاعها بناءً على محتويات المصفوفات.
يجب أن تكون جميع العناصر داخل المصفوفة من نفس النوع، ويتم التعامل مع البنى المتداخلة داخل المصفوفات كسلاسل عادية. ولذلك، عند العمل مع حقول ARRAY، يُنصح بتجنب التداخل العميق بشكل مفرط والتأكد من أن بنيات البيانات الخاصة بك مسطحة قدر الإمكان لتحقيق الأداء الأمثل.
معاملات ARRAY المتاحة
تسمح مشغلات ARRAY بالاستعلام الدقيق لحقول المصفوفات في ميلفوس. هذه المعاملات هي.
ARRAY_CONTAINS(identifier, expr)
: التحقق من وجود عنصر معين في حقل مصفوفة.ARRAY_CONTAINS_ALL(identifier, expr)
: يضمن وجود جميع عناصر القائمة المحددة في حقل المصفوفة.ARRAY_CONTAINS_ANY(identifier, expr)
: يتحقق من وجود أي عنصر من القائمة المحددة في حقل المصفوفة.ARRAY_LENGTH(identifier, expr)
: يسمح لك بتصفية الكيانات بناءً على عدد العناصر في حقل مصفوفة.
ARRAY_CONTAINS
يتحقق المشغل ARRAY_CONTAINS
من وجود عنصر محدد في حقل مصفوفة. يكون مفيدًا عندما تريد العثور على كيانات حيث يوجد عنصر معين في المصفوفة.
مثال
لنفترض أن لديك حقل مصفوفة history_temperatures
، والذي يحتوي على أدنى درجات الحرارة المسجلة لسنوات مختلفة. للعثور على جميع الكيانات التي تحتوي فيها المصفوفة على القيمة 23
، يمكنك استخدام تعبير التصفية التالي.
filter = 'ARRAY_CONTAINS(history_temperatures, 23)'
سيعيد هذا جميع الكيانات حيث تحتوي المصفوفة history_temperatures
على القيمة 23
.
array_contains_all
يضمن المشغل ARRAY_CONTAINS_ALL
وجود جميع عناصر القائمة المحددة في حقل المصفوفة. يكون هذا العامل مفيدًا عندما تريد مطابقة الكيانات التي تحتوي على قيم متعددة في المصفوفة.
مثال
إذا كنت تريد العثور على جميع الكيانات التي تحتوي فيها المصفوفة history_temperatures
على كل من 23
و 24
، يمكنك استخدام.
filter = 'ARRAY_CONTAINS_ALL(history_temperatures, [23, 24])'
سيؤدي هذا إلى إرجاع جميع الكيانات حيث تحتوي المصفوفة history_temperatures
على كل من القيم المحددة.
مصفوفة_تحتوي_على_أي
يتحقق المشغل ARRAY_CONTAINS_ANY
مما إذا كان أي من عناصر القائمة المحددة موجودًا في حقل المصفوفة. هذا مفيد عندما تريد مطابقة الكيانات التي تحتوي على قيمة واحدة على الأقل من القيم المحددة في المصفوفة.
مثال
للعثور على جميع الكيانات حيث تحتوي المصفوفة history_temperatures
على 23
أو 24
، يمكنك استخدام.
filter = 'ARRAY_CONTAINS_ANY(history_temperatures, [23, 24])'
سيؤدي هذا إلى إرجاع جميع الكيانات حيث تحتوي المصفوفة history_temperatures
على واحدة على الأقل من القيمتين 23
أو 24
.
ARRAY_LENGTH
يسمح لك المشغل ARRAY_LENGTH
بتصفية الكيانات بناءً على عدد العناصر في حقل مصفوفة. هذا مفيد عندما تحتاج إلى العثور على كيانات ذات مصفوفات ذات طول معين.
مثال
إذا كنت تريد العثور على جميع الكيانات التي تحتوي المصفوفة history_temperatures
على أقل من 10 عناصر، يمكنك استخدام.
filter = 'ARRAY_LENGTH(history_temperatures) < 10'
سيؤدي هذا إلى إرجاع جميع الكيانات التي تحتوي المصفوفة history_temperatures
على أقل من 10 عناصر.