شرح التصفية
يوفر برنامج Milvus إمكانات تصفية قوية تتيح الاستعلام الدقيق عن بياناتك. تسمح لك تعبيرات التصفية باستهداف حقول قياسية محددة وتنقيح نتائج البحث بشروط مختلفة. يشرح هذا الدليل كيفية استخدام تعبيرات التصفية في ملفوس، مع أمثلة تركز على عمليات الاستعلام. يمكنك أيضًا تطبيق هذه المرشحات في طلبات البحث والحذف.
العوامل الأساسية
يدعم ملفوس العديد من العوامل الأساسية لتصفية البيانات.
عوامل المقارنة
==
!=
و>
و و<
و>=
و<=
تسمح بالتصفية بناءً على حقول رقمية أو نصية أو تاريخية.مرشحات النطاق:
IN
وLIKE
تساعد في مطابقة نطاقات أو مجموعات قيم محددة.المعاملات الحسابية:
+
-
و*
و و/
و%
و "" تستخدم للحسابات التي تتضمن حقولًا رقمية.المعاملات المنطقية:
AND
،OR
، وNOT
أو "&&"، "|"، "|"، "~"، "!" تجمع بين عدة شروط في تعبيرات معقدة.
مثال: التصفية حسب اللون
للعثور على كيانات ذات ألوان أساسية (أحمر، أو أخضر، أو أزرق) في حقل قياسي 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
يحتوي على سجلات درجات الحرارة، وتريد العثور على المراصد التي تتجاوز درجة الحرارة المسجلة فيها 10 درجات حرارة مسجلة 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
يسمح المشغل Text_Match
باسترجاع المستندات بدقة بناءً على مصطلحات استعلام محددة. وهو مفيد بشكل خاص لعمليات البحث المصفاة التي تجمع بين المرشحات القياسية وعمليات البحث عن التشابه المتجه. على عكس عمليات البحث الدلالية، يركّز Text Match على التكرارات الدقيقة للمصطلحات.
يستخدم ميلفوس تانتيفي لدعم الفهرسة المقلوبة والبحث النصي القائم على المصطلحات. تتضمن العملية
المحلّل: ترميز النص المدخلات ومعالجتها.
الفهرسة: ينشئ فهرسًا مقلوبًا يعيّن الرموز الفريدة للمستندات.
لمزيد من التفاصيل، راجع مطابقة النص.