يوضّح هذا المستند كيفية البحث عن الملفات التي تم تطبيق تصنيف أو قيمة حقل محدّدة عليها.
أنواع حقول التصنيف
تكون حقول التصنيفات في 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 labelsnot 'labels/contract' in labels
يمكنك أيضًا البحث عن عناصر تم (أو لم يتم) ضبط حقل معيّن فيها:
labels/contract.comment IS NOT NULLlabels/contract.comment IS NULL
2. البحث استنادًا إلى حقول ذات قيمة واحدة
يمكنك كتابة طلبات بحث لمطابقة قيم الحقول المتوقّعة. يعرض الجدول التالي طلبات البحث الصالحة للحقول:
| البيانات التي تريد طلبها | سلسلة طلب البحث |
|---|---|
| العناصر التي تم ضبط التعليق فيها على "مرحبًا" | labels/contract.comment = 'hello' |
| الملفات التي يبدأ التعليق فيها بـ "hello" | labels/contract.comment STARTS WITH 'hello' |
| الملفات التي يتم فيها تنفيذ الحالة | labels/contract.status = 'executed' |
| الملفات التي لم يتم تنفيذ حالتها | labels/contract.status != 'executed' |
| الملفات التي يكون فيها execution_date قبل تاريخ محدّد | 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_leadsNOT 'EMAIL_ADDRESS' IN labels/project.project_leads
مثال
يوضّح عينة التعليمات البرمجية التالية كيفية استخدام سمة واحدة أو أكثر من سمات labelId لإدراج جميع الملفات التي تحمل تصنيفًا أو قيمة حقل معيّنة من مورد ملف في Drive. تستخدم هذه السمة أيضًا طريقة
files.list. يجب أن يكون نص الطلب فارغًا.
إذا أردت تضمين labelInfo في الردّ، عليك أيضًا تحديد ما يلي:
includeLabelsكقائمة معرّفات مفصولة بفواصل.labelInfoفي المَعلمةfieldsللإشارة إلى أنّك تريد عرضlabelInfoضمنincludeLabels.
إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على قائمة الملفات.
جافا
List<File> fileList = driveService.files().list()
.setIncludeLabels("LABEL_1_ID,LABEL_2_ID")
.setFields("files(labelInfo, id)")
.setQ("'labels/LABEL_1_ID' in labels and 'labels/LABEL_2_ID' in labels")
.execute()
.getFiles();
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="files(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 fileList;
} catch (err) {
// TODO (developer) - Handle error
throw err;
}
}
غيِّر القيم في السلسلة على الشكل التالي:
- LABEL_1_ID: أول
labelIdمن التصنيف المطلوب إرجاعه. - LABEL_2_ID: الجزء الثاني
labelIdمن التصنيف الذي سيتم عرضه.