البحث عن ملفات ذات تصنيف أو قيمة حقل معيّنة

توضّح هذه الصفحة كيفية البحث عن الملفات التي تم تطبيق تصنيف أو قيمة حقل معيّنة عليها.

أنواع حقول التصنيفات

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

النوع خيارات نوع التصنيف عوامل تشغيل البحث المتوافقة
نص TextOptions is null, is not null, =, contains, starts with
عدد صحيح IntegerOptions is null, is not null, =, !=, <, >, <=, >=
التاريخ DateOptions is null, is not null, =, !=, <, >, <=, >=
الاختيار SelectionOptions is null, is not null, =, !=
المستخدم UserOptions is null, is not null, =, !=
قائمة خيارات SelectionOptions (مع max_entries > 1) is null, is not null, in, not in
قائمة المستخدمين UserOptions (مع max_entries > 1) is null, is not null, in, not in

1. البحث استنادًا إلى وجود تصنيف أو حقل

يمكنك البحث عن الملفات التي تم تطبيق تصنيف معيّن عليها (أو لم يتم تطبيقها عليها):

  • 'labels/contract' in labels
  • not 'labels/contract' in labels

يمكنك أيضًا البحث عن الملفات التي تم ضبط حقل معيّن فيها (أو لم يتم ضبطه):

  • labels/contract.comment IS NOT NULL
  • labels/contract.comment IS NULL

2. البحث استنادًا إلى الحقول ذات القيمة الواحدة

يمكنك كتابة طلبات بحث لتتطابق مع قيم الحقول المتوقّعة. يعرض الجدول التالي طلبات البحث الصالحة للحقول:

ما تريد طلبه سلسلة طلب البحث
الملفات التي تم ضبط التعليق فيها على "hello" labels/contract.comment = 'hello'
الملفات التي يبدأ التعليق فيها بـ "hello" labels/contract.comment STARTS WITH 'hello'
الملفات التي تم تنفيذ الحالة فيها labels/contract.status = 'executed'
الملفات التي لم يتم تنفيذ الحالة فيها labels/contract.status != 'executed'
الملفات التي يكون تاريخ التنفيذ فيها قبل تاريخ معيّن labels/contract.execution_date < '2020-06-22'
الملفات التي تكون قيمة_بالدولار_الأمريكي (عدد صحيح) فيها أقل من قيمة معيّنة labels/contract.value_usd < 2000
الملفات التي تم ضبط جهة اتصال العميل فيها على عنوان بريد إلكتروني معيّن labels/contract.client_contact = 'alex@altostrat.com'

3. البحث استنادًا إلى الحقول ذات القيم المتعددة (مثل ListOptions.max_entries > 1)

لا يمكن طلب الحقول التي تتيح قيمًا متعددة إلا باستخدام عامل التشغيل IN:

  • 'EMAIL_ADDRESS' IN labels/project.project_leads
  • NOT 'EMAIL_ADDRESS' IN labels/project.project_leads

مثال

يعرض نموذج الرمز البرمجي التالي كيفية استخدام رقم تعريف تصنيف واحد أو أكثر لعرض جميع الملفات التي تتضمّن تصنيفًا أو قيمة حقل معيّنة من مورد ملف في Drive.labelId يستخدم أيضًا طريقة files.list. يجب أن يكون نص الطلب فارغًا.

إذا أردت تضمين labelInfo في الاستجابة، عليك أيضًا تحديد ما يلي:

  • includeLabels كقائمة قيم مفصولة بفاصلة من أرقام التعريف.

  • labelInfo في مَعلمة fields للإشارة إلى أنّك تريد عرض labelInfo ضمن includeLabels

إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على قائمة الملفات.

جافا

List<File> fileList = driveService.files().list().setIncludeLabels("LABEL_1_ID,LABEL_2_ID").setFields("items(labelInfo, id)").setQ("'labels/LABEL_1_ID' in labels and 'labels/LABEL_2_ID' in labels").execute().getItems();

Python

file_list = drive_service.files().list(includeLabels="LABEL_1_ID,LABEL_2_ID", q="'labels/LABEL_1_ID' in labels and 'labels/LABEL_2_ID' in labels", fields="items(labelInfo, id)").execute();

Node.js

/**
* Search for Drive files with specific labels
* @return{obj} file list with labelInfo
**/
async function searchForFileWithLabels() {
  // Get credentials and build service
  // TODO (developer) - Use appropriate auth mechanism for your app

  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
  const service = google.drive({version: 'v3', auth});
  try {
    const fileList = await service.files.list({
      includeLabels: 'LABEL_1_ID,LABEL_2_ID',
      q: '\'labels/LABEL_1_ID\' in labels and \'labels/LABEL_2_ID\' in labels',
      fields:'files(labelInfo, id)',
    });
    return file;
  } catch (err) {
    // TODO (developer) - Handle error
    throw err;
  }

غيِّر القيم في السلسلة على الشكل التالي:

  • LABEL_1_ID: أول labelId لتصنيف سيتم عرضه
  • LABEL_2_ID: ثاني labelId لتصنيف سيتم عرضه