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

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

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

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

النوع خيارات نوع التصنيف عوامل تشغيل البحث المتوافقة
النص TextOptions is null, is not null, =, contains, starts with
نص طويل LongTextOptions is null, is not null, contains
عدد صحيح IntegerOptions is null, is not null, =, !=, <, >, <=, >=
التاريخ DateOptions is null, is not null, =, !=, <, >, <=, >=
الاختيار SelectionOptions is null, is not null, =, !=
المستخدِم UserOptions is null, is not null, =, !=
قائمة الاختيارات SelectOptions (مع 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'
الملفات التي يبدأ التعليق فيها بكلمة "مرحبًا" labels/contract.comment STARTS WITH 'hello'
الملفات التي تم تنفيذ الحالة فيها labels/contract.status = 'executed'
الملفات التي لم يتم تنفيذ الحالة فيها labels/contract.status != 'executed'
الملفات التي يقع فيها تاريخ التنفيذ قبل تاريخ محدّد labels/contract.execution_date < '2020-06-22'
الملفات التي تكون فيها value_usd (عدد صحيح) أقل من قيمة معيّنة labels/contract.value_usd < 2000
الملفات التي تم فيها ضبط client_contact على عنوان بريد إلكتروني محدّد 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

مثال

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

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

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

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

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

Java

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 الثاني من التصنيف المطلوب عرضه.