تقنية

تصفية نتائج الاسترجاع: هل تطبق الشرط قبل اختيار الأقرب؟

مساران من ثلاث بطاقات: اختيار بطاقتين ثم التصفية ينتهي بفراغ، والتصفية أولا تنتهي بج
مخطط تعليمي من إعداد بحر العلوم؛ ترتيب افتراضي وليس نتيجة خدمة فعلية.

تصفية نتائج الاسترجاع تحتاج إلى تحديد وقت تطبيق الشرط، إضافة إلى صياغته. يوضح Azure AI Search أن preFilter يختار النتائج من المرشحين المطابقين، بينما postFilter يرشح أقرب النتائج داخل كل جزء من الفهرس ثم يجمعها؛ وقد تفوته مطابقات. [1] نفهم أثر الترتيب بمثال مكتوب، دون تشغيل خدمة بحث أو افتراض أن كل نظام ينفذ التصفية بالطريقة نفسها.

الخلاصة السريعة

اسأل هل اختيرت القائمة القصيرة من المواد المطابقة للشرط، أم طبق الشرط بعد اختيارها؛ فراغ القائمة الأخيرة لا يكفي لإثبات غياب مادة مطابقة.

  • حدد شرط الفئة ووقت تطبيقه؛ postFilter يرشح داخل كل جزء، وstrictPostFilter يرشح القائمة العالمية وهو معاينة، بينما preFilter يختار من المطابقين. [1]
  • في مثال المجموعة الواحدة، اختيار بطاقتين أولا قد يستبعد بطاقة الشرح الثالثة قبل فحص فئتها.
  • قارن المسارين مع ثبات الشرط والعدد؛ تصفية المرشحين أولا تسمح باختيار بطاقة الشرح الموجودة في مثالنا.
  • راجع الحقل وإعداد النظام؛ صفر بعد تصفية قائمة قصيرة لا يثبت عدم وجود مطابقات في كامل المجموعة.

ما الشرط الذي تريد تطبيقه؟

نصنع ثلاث بطاقات لورشة خيالية: «أ» و«ب» تمرينان، و«ج» شرح. يريد المستخدم شرحا فقط، ونفترض في ترتيبنا التعليمي أن الأقرب لسؤاله قبل أي تصفية هما «أ» ثم «ب» ثم «ج». هذا ترتيب مفروض لفهم الفكرة، وليس درجات تشابه قسناها.

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

ماذا يحدث إذا اخترنا بطاقتين أولا؟

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

يفصل المصدر بين postFilter الذي يرشح نتائج كل جزء قبل جمعها، وstrictPostFilter الذي يرشح القائمة العالمية بعد الجمع، والأخير ميزة معاينة. [1] مثالنا ذو مجموعة واحدة يشرح فقد مرشح بعد اختصار القائمة، ولا يصف جميع تفاصيل الفهرس الموزع أو يجعل الاسمين مترادفين.

ماذا يتغير عند التصفية أولا؟

نطبق شرط «شرح» على المجموعة التعليمية قبل اختيار الأقرب منها. تبقى «ج» وحدها، فنختارها؛ لا نصنع بطاقة ثانية لإكمال العدد المطلوب. حافظنا على الفئة نفسها وعلى رغبتنا في بطاقتين، لكننا غيرنا موضع استبعاد التمارين.

هذه المقارنة تكشف سبب اختلاف القائمتين تحت افتراضات المثال. لم نثبت أن تصنيفات ورشة حقيقية صحيحة أو أن شرح «ج» يجيب عن السؤال كله. قد ينجح شرط الفئة وتبقى المادة قديمة أو ناقصة؛ فحص المحتوى خطوة أخرى بعد معرفة ما اختير.

كيف تفسر قائمة فارغة؟

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

عند مقارنة إعدادين فعليين، ثبّت السؤال والبيانات وسجل ما ظهر بالفعل. لم نجرب إعدادا هنا ولم نقس زمنه. كما لا تجعل رفع العدد ضمانا لاكتمال الأدلة؛ الغرض تحديد أين فقدت بطاقة مطابقة، لا منح كل قائمة أطول صفة الإجابة الكاملة.

المصادر ومتابعة القراءة

  1. Microsoft Learn: Vector Query Filters (يفتح في نافذة جديدة)learn.microsoft.com

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.