يوضّح هذا المستند كيفية البحث عن الملفات التي تم تطبيق تصنيف أو قيمة حقل معيّنة عليها.
أنواع حقول التصنيفات
تكون حقول تصنيفات 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. البحث استنادًا إلى الحقول ذات القيمة الواحدة
يمكنك كتابة طلبات بحث لتتطابق مع قيم الحقول المتوقّعة. يعرض الجدول التالي طلبات البحث الصالحة للحقول:
| ما تريد طلبه | سلسلة طلب البحث |
|---|---|
| العناصر التي تم ضبط التعليق فيها على "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' |
| الملفات التي تكون قيمة value_usd (عدد صحيح) فيها أقل من قيمة معيّنة | labels/contract.value_usd < 2000 |
| الملفات التي تم ضبط جهة اتصال العميل فيها على عنوان بريد إلكتروني معيّن | 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لتصنيف سيتم عرضه