تطبيق التصفية والفرز

مكتمل

من الشائع في حل البحث رغبة المستخدمين في تنقيح نتائج الاستعلام عن طريق التصفية والفرز استنادًا إلى قيم الحقول. يدعم Azure الذكاء الاصطناعي Search كلا من هذه الإمكانات من خلال واجهة برمجة تطبيقات استعلام البحث.

تصفية النتائج

يمكنك تطبيق عوامل التصفية على الاستعلامات بطريقتين:

  • بواسطة تضمين معايير التصفية في تعبير simplesearch.
  • بواسطة توفير تعبير عامل تصفية OData كمعلمة filter$ مع تعبير بحث بناء جملة كامل.

يمكنك تطبيق عامل تصفية على أي حقل قابل للتصفية في الفهرس.

على سبيل المثال، افترض أنك تريد العثور على المستندات التي تحتوي على النص لندن التي تحتوي على حقل author بالقيمة Reviewer.

يمكنك تحقيق هذه النتيجة عن طريق إرسال تعبير simplesearch التالي:

search=London+author='Reviewer'
queryType=Simple

بدلاً من ذلك، يمكنك استخدام عامل تصفية OData في معلمة filter$ مع تعبير بحث Lucene كامل مثل هذا:

search=London
$filter=author eq 'Reviewer'
queryType=Full

تلميح

تعبيرات OData filter$ حساسة لحالة الأحرف!

التصفية باستخدام البيانات الوصفية

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

لاستخدام البيانات الوصفية، يجب تحديد حقول facetable التي تريد استرداد القيم المحتملة لها في استعلام أولي. على سبيل المثال، يمكنك استخدام المعلمات التالية لإرجاع كل القيم الممكنة لحقل author:

search=*
facet=author

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

search=*
$filter=author eq 'selected-facet-value-here'

فرز النتائج

بشكل افتراضي، يتم فرز النتائج بناءً على درجة الملاءمة التي تم تعيينها من قِبل عملية الاستعلام، مع سرد أعلى درجات المطابقة أولاً. ومع ذلك، يمكنك تجاوز ترتيب الفرز هذا عن طريق تضمين معلمة OData orderby التي تحدد حقلًا واحدًا أو أكثر من الحقول القابلة للفرز وترتيب الفرز (asc أو desc).

على سبيل المثال، لفرز النتائج بحيث يتم سرد المستندات المعدلة مؤخراً أولاً، يمكنك استخدام قيم المعلمات التالية:

search=*
$orderby=last_modified desc

إشعار

لمزيد من المعلومات حول استخدام عوامل التصفية، راجع عوامل التصفية في Azure الذكاء الاصطناعي Search. للحصول على معلومات حول استخدام النتائج، بما في ذلك تمييز الفرز والضغط، راجع كيفية العمل مع نتائج البحث في Azure الذكاء الاصطناعي Search.