searchFileContent
بحث عام عبر محتوى الملفات المرفقة بالسجلات.
Description
تبحث هذه الطريقة داخل نصوص الملفات المرفقة بسجلاتك - مثل ملفات PDF والمستندات وما إلى ذلك - وتعيد الملفات التي تطابق، كل منها مع الجزء الذي تم العثور فيه على المطابقة. تعيد Promise التي تحل إلى كائن IFileSearchResponse.
FileUploading.searchFileContent(query, langCode, extensions, ownerTables, localeCodes, onlyTruncated, offset, limit);
Parameters
query: string
استعلام البحث. يجب أن يتكون من 3 أحرف على الأقل - يتم رفض الاستعلامات الأقصر برمز 400.
مثال: "transportation"
langCode: string (اختياري)
لغة الاستعلام. الافتراضي: "en_US".
مثال: "en_US"
extensions: string[] (اختياري)
تصفية حسب امتداد الملف.
مثال: ["pdf", "docx"]
ownerTables: string[] (اختياري)
تصفية حسب القسم الذي ينتمي إليه السجل المرفق.
مثال: ["products", "pages"]
localeCodes: string[] (اختياري)
تصفية حسب لغة الرابط، وليس محتوى الملف.
مثال: ["en_US"]
onlyTruncated: boolean (اختياري)
إرجاع الملفات التي تم قطع النص المستخرج منها عند حد الحجم فقط.
مثال: true
offset: number (اختياري)
معامل للصفحات. الافتراضي: 0.
مثال: 0
limit: number (اختياري)
معامل للصفحات. الافتراضي: 10، الحد الأقصى 50 - يتم رفض القيمة الأكبر برمز 400.
مثال: 10
💡 شيئين يجب معرفتهما قبل عرض النتيجة
الوحدة هي ملف، وليس جزءًا. جزء واحد snippet لكل ملف، حتى عندما يتطابق المستند على عشرين صفحة. snippet.pageFrom يوضح الصفحة التي يبدأ منها الجزء.
المطابقة محددة بأحرف تحكم، وليس HTML. داخل snippet.text كل مطابقة محاطة بـ U+0002 و U+0003. ألصقها في تنسيقك دون تغيير، ولن يرى القارئ شيئًا - استبدلها بتسليط الضوء الخاص بك:
const html = item.snippet.text
.replaceAll('\u0002', '<mark>')
.replaceAll('\u0003', '</mark>');
🔒 ما تعيده عملية البحث
فقط الملفات الخاصة بالسجلات المرئية، وفقط في الأقسام المفعلة في إعدادات مشروعك. يتم تضييق الأقسام الشخصية إلى سجلات المتصل فقط، ولا يتم إرجاع قسم المسؤولين أبدًا. يعني رمز 403 مع رسالة تعريفة أن الميزة غير مشمولة في خطتك.
أمثلة
مثال بسيط
const response = await FileUploading.searchFileContent('transportation');
فقط ملفات PDF المرفقة بالمنتجات
const response = await FileUploading.searchFileContent(
'transportation',
'en_US',
['pdf'],
['products'],
);
الصفحة الثانية
const response = await FileUploading.searchFileContent(
'transportation',
'en_US',
undefined,
undefined,
undefined,
undefined,
10,
10,
);
مثال على الاستجابة
{
"total": 124,
"offset": 0,
"limit": 10,
"queryLanguage": {
"resolved": ["english"],
"source": "explicit",
"candidates": ["english"]
},
"warnings": [],
"items": [
{
"id": 1077,
"storageKey": "files/project/file/644/product/db1918c4.pdf",
"extension": "pdf",
"title": null,
"langCode": "en",
"pageCount": 244,
"rank": 0.0971,
"snippet": {
"text": "Active Transportation Demand Management",
"pageFrom": 86
},
"owners": [
{
"tableName": "products",
"dataId": 644,
"title": "COG - March 17, 2016",
"langCode": "en_US"
}
],
"ownersTotal": 2
}
]
}
مخطط الاستجابة
المخطط: IFileSearchResponse
total: number
إجمالي عدد الملفات المطابقة.
مثال: 124
offset: number
الصفحة التي يبدأ منها الإزاحة.
مثال: 0
limit: number
حجم الصفحة.
مثال: 10
queryLanguage: IFileSearchQueryLanguage
كيف تم حل لغة الاستعلام: تم الحل، المصدر، المرشحين.
مثال: { "resolved": ["english"], "source": "explicit", "candidates": ["english"] }
warnings: string[]
تحذيرات حول البحث، فارغة عندما لا توجد.
مثال: []
items: IFileSearchItem[]
الملفات التي تم العثور عليها.
مثال: [{ "id": 1077, "extension": "pdf" }]
items[].id: number
معرف الملف المفهرس.
مثال: 1077
items[].storageKey: string
مفتاح الكائن في التخزين؛ يتم بناء رابط الملف منه.
مثال: "files/project/file/644/product/db1918c4.pdf"
items[].extension: string
امتداد الملف.
مثال: "pdf"
items[].title: string | null
العنوان من بيانات التعريف الخاصة بالمستند، null عندما لا يحمل المستند أيًا منها.
مثال: null
items[].langCode: string | null
لغة محتوى الملف، تم اكتشافها عند الفهرسة.
مثال: "en"
items[].pageCount: number | null
عدد الصفحات، بالنسبة للتنسيقات المصفحة.
مثال: 244
items[].rank: number
مدى ملاءمة المطابقة؛ يتم فرز النتائج بناءً على ذلك تنازليًا.
مثال: 0.0971
items[].snippet: IFileSearchSnippet | null
الجزء المطابق: النص بالإضافة إلى الصفحة التي يبدأ منها.
مثال: { "text": "Active Transportation", "pageFrom": 86 }
items[].owners: IFileSearchOwner[]
السجلات التي يرتبط بها الملف، إدخال واحد لكل لغة محلية.
مثال: [{ "tableName": "products", "dataId": 644 }]
items[].ownersTotal: number
عدد السجلات المرئية للمتصل التي تشير إلى الملف.
مثال: 2