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

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

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

تتم كتابة حقول تصنيفات 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, =, !=
قائمة الاختيارات ‫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'
الملفات التي يبدأ فيها التعليق بـ "مرحبًا" 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 الثاني لملصق الإرجاع.