توضّح هذه الصفحة كيفية البحث عن الملفات التي تم تطبيق تصنيف أو قيمة حقل معيّنة عليها.
أنواع حقول التصنيفات
تكون حقول تصنيفات 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' |
| الملفات التي تكون قيمة_بالدولار_الأمريكي (عدد صحيح) فيها أقل من قيمة معيّنة | 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
مثال
يعرض نموذج الرمز البرمجي التالي كيفية استخدام رقم تعريف تصنيف واحد أو أكثر لعرض جميع الملفات التي تتضمّن تصنيفًا أو قيمة حقل معيّنة من مورد ملف في 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لتصنيف سيتم عرضه