🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI
الصفحة الرئيسية
  • دليل المستخدم
  • Home
  • Docs
  • دليل المستخدم

  • البحث وإعادة التصنيف

  • التصفية

  • تصفية القوالب النمذجة

تصميم عامل التصفية

في Milvus، يمكن أن تؤثر تعبيرات التصفية المعقدة التي تحتوي على العديد من العناصر، خاصة تلك التي تتضمن أحرفًا غير ASCII مثل أحرف CJK، بشكل كبير على أداء الاستعلام. ولمعالجة هذه المشكلة، يقدم ميلفوس آلية نمذجة تعبيرات التصفية المصممة لتحسين الكفاءة من خلال تقليل الوقت المستغرق في تحليل التعبيرات المعقدة. تشرح هذه الصفحة استخدام نموذج تعبير المرشح في عمليات البحث والاستعلام والحذف.

نظرة عامة

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

لنفترض أن لديك تعبير مرشح يتضمن حقلين، age و city ، وتريد العثور على جميع الأشخاص الذين تزيد أعمارهم عن 25 عامًا ويعيشون إما في "北京 海" (بكين) أو "海 海" (شنغهاي). بدلاً من تضمين القيم مباشرة في تعبير المرشح، يمكنك استخدام قالب.

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

هنا، {age} و {city} هي عناصر نائبة سيتم استبدالها بالقيم الفعلية في filter_params عند تنفيذ الاستعلام.

يتميز استخدام قالب تعبير المرشح في ميلفوس بالعديد من المزايا الرئيسية.

  • تقليل وقت التحليل: من خلال استبدال تعبيرات التصفية الكبيرة أو المعقدة بالعناصر النائبة، يقضي النظام وقتًا أقل في تحليل المرشح ومعالجته.

  • تحسين أداء الاستعلام: مع انخفاض تكاليف التحليل الزائدة، يتحسن أداء الاستعلام، مما يؤدي إلى زيادة معدل الاستجابة السريعة وأوقات استجابة أسرع.

  • قابلية التوسع: مع نمو مجموعات البيانات الخاصة بك وزيادة تعقيد تعبيرات التصفية، يضمن النمذجة أن يظل الأداء فعالاً وقابلاً للتطوير.

عمليات البحث

بالنسبة لعمليات البحث في Milvus، يُستخدم التعبير filter لتحديد شرط التصفية، وتُستخدم المعلمة filter_params لتحديد قيم العناصر النائبة. يحتوي القاموس filter_params على القيم الديناميكية التي سيستخدمها ميلفوس للاستعاضة عنها في تعبير التصفية.

expr = "age > {age} AND city IN {city}"
filter_params = {"age": 25, "city": ["北京", "上海"]}
res = client.search(
    "hello_milvus",
    vectors[:nq],
    filter=expr,
    limit=10,
    output_fields=["age", "city"],
    search_params={"metric_type": "COSINE", "params": {"search_list": 100}},
    filter_params=filter_params,
)

في هذا المثال، سيستبدل ميلفوس ديناميكيًا {age} ب 25 و {city} ب ["北京", "上海"] عند تنفيذ البحث.

عمليات الاستعلام

يمكن تطبيق آلية النمذجة نفسها على عمليات الاستعلام في ميلفوس. في الدالة query ، يمكنك تحديد تعبير المرشح واستخدام filter_params لتحديد القيم المراد استبدالها.

expr = "age > {age} AND city IN {city}"
filter_params = {"age": 25, "city": ["北京", "上海"]}
res = client.query(
    "hello_milvus",
    filter=expr,
    output_fields=["age", "city"],
    filter_params=filter_params
)

باستخدام filter_params ، يتعامل ميلفوس بكفاءة مع الإدراج الديناميكي للقيم، مما يحسن من سرعة تنفيذ الاستعلام.

عمليات الحذف

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

expr = "age > {age} AND city IN {city}"
filter_params = {"age": 25, "city": ["北京", "上海"]}
res = client.delete(
    "hello_milvus",
    filter=expr,
    filter_params=filter_params
)

يعمل هذا الأسلوب على تحسين أداء عمليات الحذف، خاصة عند التعامل مع شروط التصفية المعقدة.

الخلاصة

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

جرب Managed Milvus مجاناً

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

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

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