البحث المتقدم في المجموعات العامة

Read in English | Lire en français | Leer en español

آخر تحديث: 4 مارس 2021

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

سلوك البحث الافتراضي

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

  • اسم الاستبيان أو المجموعة أو السؤال أو الكتلة أو القالب؛

  • اسم المستخدم للمالك؛

  • الوصف؛

  • الملخص، الذي يحتوي على جميع تسميات الأسئلة واللغات؛

  • اسم أي وسم مُعيّن؛

  • المعرّف الفريد للكائن (UID).

على سبيل المثال، البحث الافتراضي بالمصطلح: "examples"، سينتج عنه ما يلي:

name__icontains:examples OR owner__username__icontains:examples OR
settings__description__icontains:examples OR summary__icontains:examples OR
tags__name__icontains:examples OR uid__icontains:examples

examples

عوامل تشغيل حقول البحث الصالحة

عامل تشغيل الحقل هو القيمة بعد آخر شرطة سفلية مزدوجة في حقل البحث، أي __icontains.

  • لعمليات البحث النصية الحساسة لحالة الأحرف، يمكن استخدام عوامل التشغيل التالية: contains، exact، startswith

  • لعمليات البحث النصية غير الحساسة لحالة الأحرف: icontains، iexact، istartswith

  • للبحث الرقمي، عوامل التشغيل التالية صالحة: exact، lt، lte، gt، gte

لاحظ أنه افتراضياً يتم تعيين عامل التشغيل exact، لذلك name:foo يعادل name__exact:foo

فهم صيغة حقل البحث

تحاكي صيغة الشرطة السفلية المزدوجة سلوك صيغة تصفية كائنات Django وتسمح بالتنقل عبر علاقات الكائنات المرتبطة والتسلسلات الهرمية لـ JSON، مثل تلك الموجودة في نقطة النهاية:

https://kf.kobotoolbox.org/api/v2/assets/

على سبيل المثال، إذا كان لأحد الأصول الإعدادات التالية:

{
    ...
    "settings": {
        ...
        "country": {
            "label": "United States",
            "value": "USA"
        }
        ...
    },
    ...
}

يمكن البحث عن الكائن من خلال الطرق التالية:

settings__country__value:USA

examples

أو بشكل أكثر مرونة:

settings__country__value__icontains:usa

examples

استخدام محلل الاستعلام

أخيراً، يمكن دمج حقول البحث الموضحة أعلاه باستخدام صيغة محلل الاستعلام لعمليات بحث أكثر دقة. على سبيل المثال:

owner__username__icontains:foo AND tags__name__icontains:bar

أو:

owner__username__icontains:foo AND NOT tags__name__icontains:bar

examples