شرح التصفية

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

العوامل الأساسية

يدعم ملفوس العديد من العوامل الأساسية لتصفية البيانات:

  • عوامل المقارنة == != و > و و < و >= و <= تسمح بالتصفية بناءً على الحقول الرقمية أو النصية.

  • مرشحات النطاق: IN و LIKE تساعد في مطابقة نطاقات أو مجموعات قيم محددة.

  • المعاملات الحسابية: + - و * و و / و % و ** تستخدم للحسابات التي تتضمن حقول رقمية.

  • المعاملات المنطقية: AND و OR و NOT تجمع بين عدة شروط في تعبيرات معقدة.

  • معامِلاتIS NULL و IS NOT NULL: يُستخدم المشغّلان IS NULL و IS NOT NULL لتصفية الحقول بناءً على ما إذا كانت تحتوي على قيمة فارغة (عدم وجود بيانات). لمزيد من التفاصيل، راجع المعاملات الأساسية.

مثال: التصفية حسب اللون

للعثور على كيانات ذات ألوان أساسية (أحمر أو أخضر أو أزرق) في حقل قياسي color ، استخدم تعبير التصفية التالي:

filter='color in ["red", "green", "blue"]'

مثال: تصفية حقول JSON

يسمح ميلفوس بالرجوع إلى المفاتيح في حقول JSON. على سبيل المثال، إذا كان لديك حقل JSON product مع المفتاحين price و model ، وتريد العثور على منتجات ذات طراز وسعر محدد أقل من 1850، استخدم تعبير التصفية هذا:

filter='product["model"] == "JSN-087" AND product["price"] < 1850'

مثال: تصفية حقول المصفوفات

إذا كان لديك حقل مصفوفة history_temperatures يحتوي على سجلات متوسط درجات الحرارة التي أبلغت عنها المراصد منذ عام 2000، وتريد العثور على المراصد التي تجاوزت فيها درجة الحرارة في عام 2009 (العاشر المسجل) 23 درجة مئوية، استخدم هذا التعبير:

filter='history_temperatures[10] > 23'

لمزيد من المعلومات حول هذه العوامل الأساسية، راجع المعاملات الأساسية.

قوالب تعبيرات التصفية

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

يقدم Milvus قوالب تعبيرات التصفية لتحسين الأداء عند العمل مع أحرف CJK. من خلال فصل القيم الديناميكية عن تعبير عامل التصفية، يتعامل محرك الاستعلام مع إدخال المعلمات بكفاءة أكبر.

مثال

للعثور على الأفراد الذين تزيد أعمارهم عن 25 عامًا ويعيشون إما في "北京" (بكين) أو "海海 海" (شنغهاي)، استخدم تعبير القالب التالي:

filter = "age > 25 AND city IN ['北京', '上海']"

لتحسين الأداء، استخدم هذا الشكل مع المعلمات:

filter = "age > {age} AND city in {city}",
filter_params = {"age": 25, "city": ["北京", "上海"]}

هذا الأسلوب يقلل من عبء التحليل ويحسن سرعة الاستعلام. للمزيد من المعلومات، راجع نموذج التصفية.

المشغلات الخاصة بنوع البيانات

يوفر Milvus عوامل تصفية متقدمة لأنواع بيانات محددة، مثل حقول JSON و ARRAY و VARCHAR.

مشغلات خاصة بحقل JSON

يوفر Milvus مشغلات متقدمة للاستعلام عن حقول JSON، مما يتيح تصفية دقيقة داخل هياكل JSON المعقدة:

JSON_CONTAINS(identifier, jsonExpr): التحقق من وجود تعبير JSON في الحقل.

# JSON data: {"tags": ["electronics", "sale", "new"]}
filter='json_contains(tags, "sale")'

JSON_CONTAINS_ALL(identifier, jsonExpr): يتأكد من وجود جميع عناصر تعبير JSON.

# JSON data: {"tags": ["electronics", "sale", "new", "discount"]}
filter='json_contains_all(tags, ["electronics", "sale", "new"])'

JSON_CONTAINS_ANY(identifier, jsonExpr): يقوم بتصفية الكيانات التي يوجد فيها عنصر واحد على الأقل في تعبير JSON.

# JSON data: {"tags": ["electronics", "sale", "new"]}
filter='json_contains_any(tags, ["electronics", "new", "clearance"])'

لمزيد من التفاصيل حول مشغلي JSON، راجع مشغلي JSON.

المشغلات الخاصة بحقل ARRAY

يوفر ميلفوس عوامل تصفية متقدمة لحقول المصفوفات، مثل ARRAY_CONTAINS و ARRAY_CONTAINS_ALL و ARRAY_CONTAINS_ANY و ARRAY_LENGTH ، والتي تسمح بالتحكم الدقيق في بيانات المصفوفات:

ARRAY_CONTAINS: تصفية الكيانات التي تحتوي على عنصر معين.

filter="ARRAY_CONTAINS(history_temperatures, 23)"

ARRAY_CONTAINS_ALL: تصفية الكيانات التي تحتوي على جميع العناصر الموجودة في القائمة.

filter="ARRAY_CONTAINS_ALL(history_temperatures, [23, 24])"

ARRAY_CONTAINS_ANY: : تصفية الكيانات التي تحتوي على أي عنصر من القائمة.

filter="ARRAY_CONTAINS_ANY(history_temperatures, [23, 24])"

ARRAY_LENGTH: تصفيات بناءً على طول المصفوفة.

filter="ARRAY_LENGTH(history_temperatures) < 10"

لمزيد من التفاصيل حول مشغلي المصفوفة، راجع مشغلي ARRAY.

المشغلات الخاصة بحقل VARCHAR

يوفر ميلفوس مشغلات متخصصة لعمليات بحث دقيقة تستند إلى النص على حقول VARCHAR:

TEXT_MATCH المشغل

يسمح المشغل TEXT_MATCH باسترجاع المستندات بدقة بناءً على مصطلحات استعلام محددة. وهو مفيد بشكل خاص لعمليات البحث المصفاة التي تجمع بين المرشحات العددية وعمليات البحث عن التشابه المتجه. على عكس عمليات البحث الدلالية، يركّز Text Match على التكرارات الدقيقة للمصطلحات.

يستخدم ميلفوس تانتيفي لدعم الفهرسة المقلوبة والبحث النصي القائم على المصطلحات. تتضمن العملية

  1. المحلّل: ترميز النص المدخلات ومعالجتها.

  2. الفهرسة: ينشئ فهرسًا مقلوبًا يعيّن الرموز الفريدة للمستندات.

لمزيد من التفاصيل، راجع مطابقة النص.

PHRASE_MATCH المشغّلCompatible with Milvus 2.6.x

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

لمزيد من التفاصيل، راجع مطابقة العبارة.

جرب Managed Milvus مجاناً

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

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

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