searchFileContent
ابحث في نصوص الملفات المرفقة بالسجلات. لا يلزم أي تفويض.
الوصف
يبحث في نص الملفات المرفقة بسجلاتك (ملفات PDF والمستندات وما شابه). يُعيد IFileSearchResponse يحتوي على الملفات المطابقة، ولكل منها المقطع الذي وُجد فيه التطابق.
.searchFileContent(
,
,
,
,
,
,
,
);
مخطط المعلمات
Schema
query(required): string
استعلام البحث، 3 أحرف على الأقل — يُرفض الأقصر بالخطأ 400.
مثال: "transportation"
langCode: string
لغة الاستعلام. الافتراضي: langCode المُمرَّر إلى defineOneEntry ("en_US" إذا لم يُمرَّر). يُرفض الرمز الذي لا يدعمه البحث (على سبيل المثال "xx_YY") بالخطأ 400 "Unknown text search language".
مثال: "en_US"
extensions: string[]
التصفية حسب امتداد الملف، تُرسل مفصولة بفواصل.
مثال:
[
"pdf",
"docx"
]
ownerTables: string[]
التصفية حسب القسم الذي ينتمي إليه السجل المرفق، تُرسل مفصولة بفواصل.
مثال:
[
"products",
"pages"
]
localeCodes: string[]
تصفية حسب لغة الرابط، وليس محتوى الملف.
مثال:
[
"en_US"
]
onlyTruncated: boolean
إرجاع الملفات التي تم قطع النص المستخرج منها عند حد الحجم فقط.
offset: number
عدد السجلات المراد تخطيها. الافتراضي: 0. يجب ألا يتجاوز offset + limit القيمة 200؛ وتُرفض النافذة الأكبر بالخطأ 400.
مثال: 0
limit: number
عدد الملفات المُرجعة. الافتراضي: 10، الحد الأقصى 50؛ تُرفض القيمة الأكبر بالخطأ 400. يجب ألا يتجاوز offset + limit القيمة 200.
مثال: 10
يرسل SDK دائمًا langCode، لذا يُبحث عن الاستعلام افتراضيًا بلغة تطبيقك وتكون queryLanguage.source بقيمة "explicit". لا يُكتشف الاستعلام المكتوب بنظام كتابة مختلف تلقائيًا: يُبحث عن استعلام بالسيريلية مع en_US الافتراضي على أنه إنجليزي. للسماح لواجهة API باختيار اللغة من الاستعلام وإعدادات المشروع، مرّر سلسلة نصية فارغة بوصفها langCode.
قبل عرض النتيجة
الوحدة هي الملف، وليست المقطع. تحصل على snippet واحد لكل ملف، حتى لو تطابق المستند في عشرين صفحة. يخبرك snippet.pageFrom بالصفحة التي يبدأ منها المقطع.
تُعلَّم المطابقات بأحرف تحكم، لا بـ HTML. داخل snippet.text تُحاط كل مطابقة بـ U+0002 وU+0003. إذا أدرجت النص في الترميز الخاص بك دون تغيير، فلن يرى القارئ التمييز، لذا استبدلهما بوسومك الخاصة. يأتي النص من الملف نفسه، لذا قم بتهريبه أولًا ثم أضف الوسوم بعد ذلك:
const escapeHtml = (text) =>
text
.replaceAll('&', '&')
.replaceAll('<', '<')
.replaceAll('>', '>')
.replaceAll('"', '"');
const html = escapeHtml(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": 0,
"offset": 0,
"limit": 10,
"queryLanguage": {
"resolved": [
"english"
],
"source": "explicit",
"candidates": [
"english"
]
},
"warnings": [
"processing_disabled"
],
"items": []
}
مخطط الاستجابة
المخطط: IFileSearchResponse
total: number
العدد الإجمالي للملفات المطابقة.
مثال: 166
offset: number
عدد السجلات المراد تخطيها.
مثال: 0
limit: number
الحد الأقصى لعدد السجلات المراد إرجاعها.
مثال: 10
queryLanguage: IFileSearchQueryLanguage
كيف تم تحديد لغة الاستعلام.
queryLanguage.resolved: string[]
إعدادات البحث النصي التي نُفّذ بها الاستعلام، على سبيل المثال english.
مثال: ["english"]
queryLanguage.source: string
كيف اختيرت اللغة: explicit (من langCode)، أو script أو facet أو configured أو fallback عندما تكون langCode فارغة.
مثال: "explicit"
queryLanguage.candidates: string[]
اللغات التي أُخذت في الاعتبار.
مثال: ["english"]
warnings: string[]
أسباب احتمال أن تكون النتيجة فارغة أو تقريبية: processing_disabled، query_too_common، query_language_capped، semantic_unavailable، fuzzy_fallback. فارغة إذا لم توجد.
items: IFileSearchItem[]
الملفات المطابقة للاستعلام.
items.id: number
معرّف الملف المفهرس.
مثال: 1077
items.storageKey: string
مفتاح الكائن في التخزين؛ يُبنى منه رابط الملف.
مثال: "files/project/file/644/product/db1918c4.pdf"
items.extension: string
امتداد الملف.
مثال: "pdf"
items.title: string | null
العنوان من بيانات المستند الوصفية، أو null عندما لا يحتوي المستند على عنوان.
مثال: "Microsoft Word - COG Agenda.docx"
items.langCode: string | null
لغة محتوى الملف، تُكتشف عند الفهرسة.
مثال: "en"
items.pageCount: number | null
عدد الصفحات، للتنسيقات المقسمة إلى صفحات.
مثال: 244
items.rank: number
مدى صلة التطابق؛ ترتّب واجهة API النتائج حسبه تنازليًا.
مثال: 0.0971
items.snippet: IFileSearchSnippet | null
الجزء المطابق.
items.owners: IFileSearchOwner[]
السجلات المرفق بها الملف، مقتصرة على ما يحق للمستدعي رؤيته.
items.ownersTotal: number
عدد السجلات المرئية للمستدعي التي تشير إلى الملف.
مثال: 2