تتيح Gemini API ميزة "التوليد المعزّز بالاسترجاع" (RAG) من خلال أداة "البحث في الملفات". تستورد أداة "البحث في الملفات" بياناتك وتقسّمها وتفهرسها لتتيح استرجاع المعلومات ذات الصلة بسرعة استنادًا إلى طلب مقدَّم. تُستخدم هذه المعلومات بعد ذلك كسياق للنموذج، ما يسمح له بتقديم إجابات أكثر دقة وملاءمةً.
لجعل أداة "البحث في الملفات" بسيطة وميسورة التكلفة للمطوّرين، سنوفّر تخزين الملفات وإنشاء عمليات التضمين في وقت طلب البحث مجانًا. لا يتم تحصيل رسوم منك إلا مقابل إنشاء عمليات التضمين عند فهرسة ملفاتك لأول مرة (بتكلفة نموذج التضمين السارية) والتكلفة العادية لرموز الإدخال والإخراج في نموذج Gemini. يُسهّل نموذج الفوترة الجديد هذا استخدام أداة "البحث في الملفات" ويجعلها أكثر فعالية من حيث التكلفة عند الإنشاء والتوسيع.
التحميل المباشر إلى مساحة تخزين "البحث في الملفات"
يوضّح هذا المثال كيفية تحميل ملف مباشرةً إلى مساحة تخزين "البحث في الملفات":
Python
from google import genai
from google.genai import types
import time
client = genai.Client()
# File name will be visible in citations
file_search_store = client.file_search_stores.create(config={'display_name': 'your-fileSearchStore-name'})
operation = client.file_search_stores.upload_to_file_search_store(
file='sample.txt',
file_search_store_name=file_search_store.name,
config={
'display_name' : 'display-file-name',
}
)
while not operation.done:
time.sleep(5)
operation = client.operations.get(operation)
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents="""Can you tell me about [insert question]""",
config=types.GenerateContentConfig(
tools=[
types.Tool(
file_search=types.FileSearch(
file_search_store_names=[file_search_store.name]
)
)
]
)
)
print(response.text)
JavaScript
const { GoogleGenAI } = require('@google/genai');
const ai = new GoogleGenAI({});
async function run() {
// File name will be visible in citations
const fileSearchStore = await ai.fileSearchStores.create({
config: { displayName: 'your-fileSearchStore-name' }
});
let operation = await ai.fileSearchStores.uploadToFileSearchStore({
file: 'file.txt',
fileSearchStoreName: fileSearchStore.name,
config: {
displayName: 'file-name',
}
});
while (!operation.done) {
await new Promise(resolve => setTimeout(resolve, 5000));
operation = await ai.operations.get({ operation });
}
const response = await ai.models.generateContent({
model: "gemini-3-flash-preview",
contents: "Can you tell me about [insert question]",
config: {
tools: [
{
fileSearch: {
fileSearchStoreNames: [fileSearchStore.name]
}
}
]
}
});
console.log(response.text);
}
run();
راجِع مرجع واجهة برمجة التطبيقات uploadToFileSearchStore لمزيد من المعلومات.
استيراد الملفات
بدلاً من ذلك، يمكنك تحميل ملف حالي واستيراده إلى مساحة تخزين "البحث في الملفات":
Python
from google import genai
from google.genai import types
import time
client = genai.Client()
# File name will be visible in citations
sample_file = client.files.upload(file='sample.txt', config={'name': 'display_file_name'})
file_search_store = client.file_search_stores.create(config={'display_name': 'your-fileSearchStore-name'})
operation = client.file_search_stores.import_file(
file_search_store_name=file_search_store.name,
file_name=sample_file.name
)
while not operation.done:
time.sleep(5)
operation = client.operations.get(operation)
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents="""Can you tell me about [insert question]""",
config=types.GenerateContentConfig(
tools=[
types.Tool(
file_search=types.FileSearch(
file_search_store_names=[file_search_store.name]
)
)
]
)
)
print(response.text)
JavaScript
const { GoogleGenAI } = require('@google/genai');
const ai = new GoogleGenAI({});
async function run() {
// File name will be visible in citations
const sampleFile = await ai.files.upload({
file: 'sample.txt',
config: { name: 'file-name' }
});
const fileSearchStore = await ai.fileSearchStores.create({
config: { displayName: 'your-fileSearchStore-name' }
});
let operation = await ai.fileSearchStores.importFile({
fileSearchStoreName: fileSearchStore.name,
fileName: sampleFile.name
});
while (!operation.done) {
await new Promise(resolve => setTimeout(resolve, 5000));
operation = await ai.operations.get({ operation: operation });
}
const response = await ai.models.generateContent({
model: "gemini-3-flash-preview",
contents: "Can you tell me about [insert question]",
config: {
tools: [
{
fileSearch: {
fileSearchStoreNames: [fileSearchStore.name]
}
}
]
}
});
console.log(response.text);
}
run();
راجِع مرجع واجهة برمجة التطبيقات importFile لمزيد من المعلومات.
إعدادات التقسيم
عند استيراد ملف إلى مساحة تخزين "البحث في الملفات"، يتم تقسيمه تلقائيًا إلى أجزاء وتضمينه وفهرسته وتحميله إلى مساحة تخزين "البحث في الملفات". إذا كنت
بحاجة إلى مزيد من التحكّم في استراتيجية التقسيم، يمكنك تحديد إعداد
chunking_config
لضبط الحد الأقصى لعدد الرموز لكل جزء والحد الأقصى لعدد الرموز المتداخلة.
Python
from google import genai
from google.genai import types
import time
client = genai.Client()
operation = client.file_search_stores.upload_to_file_search_store(
file_search_store_name=file_search_store.name,
file_name=sample_file.name,
config={
'chunking_config': {
'white_space_config': {
'max_tokens_per_chunk': 200,
'max_overlap_tokens': 20
}
}
}
)
while not operation.done:
time.sleep(5)
operation = client.operations.get(operation)
print("Custom chunking complete.")
JavaScript
const { GoogleGenAI } = require('@google/genai');
const ai = new GoogleGenAI({});
let operation = await ai.fileSearchStores.uploadToFileSearchStore({
file: 'file.txt',
fileSearchStoreName: fileSearchStore.name,
config: {
displayName: 'file-name',
chunkingConfig: {
whiteSpaceConfig: {
maxTokensPerChunk: 200,
maxOverlapTokens: 20
}
}
}
});
while (!operation.done) {
await new Promise(resolve => setTimeout(resolve, 5000));
operation = await ai.operations.get({ operation });
}
console.log("Custom chunking complete.");
لاستخدام مساحة تخزين "البحث في الملفات"، مرِّرها كأداة إلى طريقة generateContent
، كما هو موضّح في أمثلة التحميل والاستيراد.
آلية العمل
تستخدم أداة "البحث في الملفات" تقنية تُعرف باسم البحث الدلالي للعثور على المعلومات ذات الصلة بطلب المستخدم. على عكس البحث العادي المستند إلى الكلمات الرئيسية، يفهم البحث الدلالي معنى طلبك وسياقه.
عند استيراد ملف، يتم تحويله إلى تمثيلات رقمية تُعرف باسم تضمينات، والتي تلتقط المعنى الدلالي لـ النص. يتم تخزين عمليات التضمين هذه في قاعدة بيانات متخصّصة لأداة "البحث في الملفات". عند إجراء طلب بحث، يتم تحويله أيضًا إلى عملية تضمين. بعد ذلك، يُجري النظام عملية "بحث في الملفات" للعثور على أجزاء المستند الأكثر تشابهًا وملاءمةً من مساحة تخزين "البحث في الملفات".
لا تتوفّر مدة بقاء لعمليات التضمين والملفات، بل تظل متاحة إلى أن يتم حذفها يدويًا أو عند إيقاف النموذج.
في ما يلي تفصيل لعملية استخدام واجهة برمجة التطبيقات uploadToFileSearchStore لأداة "البحث في الملفات":
إنشاء مساحة تخزين "البحث في الملفات": تحتوي مساحة تخزين "البحث في الملفات" على البيانات المعالَجة من ملفاتك. وهي الحاوية الثابتة لعمليات التضمين التي سيُجري عليها البحث الدلالي عملياته.
تحميل ملف واستيراده إلى مساحة تخزين "البحث في الملفات": يمكنك تحميل ملف واستيراد النتائج إلى مساحة تخزين "البحث في الملفات" في الوقت نفسه. يؤدي ذلك إلى إنشاء عنصر
Fileمؤقت، وهو مرجع لمستندك الأولي. بعد ذلك، يتم تقسيم هذه البيانات وتحويلها إلى عمليات تضمين لأداة "البحث في الملفات" وفهرستها. يتم حذف عنصرFileبعد 48 ساعة، بينما سيتم تخزين البيانات المستورَدة إلى مساحة تخزين "البحث في الملفات" إلى أجل غير مسمّى إلى أن تختار حذفها.إجراء طلب بحث باستخدام أداة "البحث في الملفات": أخيرًا، يمكنك استخدام أداة
FileSearchفي طلبgenerateContentفي إعدادات الأداة، يمكنك تحديدFileSearchRetrievalResource، الذي يشير إلىFileSearchStoreالذي تريد البحث فيه. يطلب ذلك من النموذج إجراء بحث دلالي في مساحة تخزين "البحث في الملفات" المحدّدة للعثور على معلومات ذات صلة لتستند إليها استجابته.
في هذا الرسم البياني، يمثّل الخط المتقطّع من المستندات إلى نموذج التضمين
(باستخدام gemini-embedding-001)
واجهة برمجة التطبيقات uploadToFileSearchStore (مع تجاوز مساحة تخزين الملفات).
بخلاف ذلك، يؤدي استخدام Files API لإنشاء الملفات بشكل منفصل ثم استيرادها إلى نقل عملية الفهرسة من المستندات إلى مساحة تخزين الملفات ثم إلى نموذج التضمين.
مساحات تخزين "البحث في الملفات"
مساحة تخزين "البحث في الملفات" هي حاوية لعمليات تضمين مستنداتك. في حين يتم حذف الملفات الأولية التي يتم تحميلها من خلال File API بعد 48 ساعة، يتم تخزين البيانات المستورَدة إلى مساحة تخزين "البحث في الملفات" إلى أجل غير مسمّى إلى أن تحذفها يدويًا. يمكنك إنشاء مساحات تخزين متعددة لأداة "البحث في الملفات" لتنظيم مستنداتك. تتيح لك واجهة برمجة التطبيقات FileSearchStore إنشاء مساحات تخزين "البحث في الملفات" وإدراجها والحصول عليها وحذفها لإدارتها. تكون أسماء مساحات تخزين "البحث في الملفات" ضمن نطاق عالمي.
في ما يلي بعض الأمثلة عن كيفية إدارة مساحات تخزين "البحث في الملفات":
Python
file_search_store = client.file_search_stores.create(config={'display_name': 'my-file_search-store-123'})
for file_search_store in client.file_search_stores.list():
print(file_search_store)
my_file_search_store = client.file_search_stores.get(name='fileSearchStores/my-file_search-store-123')
client.file_search_stores.delete(name='fileSearchStores/my-file_search-store-123', config={'force': True})
JavaScript
const fileSearchStore = await ai.fileSearchStores.create({
config: { displayName: 'my-file_search-store-123' }
});
const fileSearchStores = await ai.fileSearchStores.list();
for await (const store of fileSearchStores) {
console.log(store);
}
const myFileSearchStore = await ai.fileSearchStores.get({
name: 'fileSearchStores/my-file_search-store-123'
});
await ai.fileSearchStores.delete({
name: 'fileSearchStores/my-file_search-store-123',
config: { force: true }
});
REST
curl -X POST "https://generativelanguage.googleapis.com/v1beta/fileSearchStores?key=${GEMINI_API_KEY}" \
-H "Content-Type: application/json"
-d '{ "displayName": "My Store" }'
curl "https://generativelanguage.googleapis.com/v1beta/fileSearchStores?key=${GEMINI_API_KEY}" \
curl "https://generativelanguage.googleapis.com/v1beta/fileSearchStores/my-file_search-store-123?key=${GEMINI_API_KEY}"
curl -X DELETE "https://generativelanguage.googleapis.com/v1beta/fileSearchStores/my-file_search-store-123?key=${GEMINI_API_KEY}"
مستندات "البحث في الملفات"
يمكنك إدارة المستندات الفردية في مساحات تخزين الملفات باستخدام الـ
File Search Documents API لإجراء list لكل مستند
في مساحة تخزين "البحث في الملفات"، وget معلومات عن مستند، وdelete مستند
بالاسم.
Python
for document_in_store in client.file_search_stores.documents.list(parent='fileSearchStores/my-file_search-store-123'):
print(document_in_store)
file_search_document = client.file_search_stores.documents.get(name='fileSearchStores/my-file_search-store-123/documents/my_doc')
print(file_search_document)
client.file_search_stores.documents.delete(name='fileSearchStores/my-file_search-store-123/documents/my_doc')
JavaScript
const documents = await ai.fileSearchStores.documents.list({
parent: 'fileSearchStores/my-file_search-store-123'
});
for await (const doc of documents) {
console.log(doc);
}
const fileSearchDocument = await ai.fileSearchStores.documents.get({
name: 'fileSearchStores/my-file_search-store-123/documents/my_doc'
});
await ai.fileSearchStores.documents.delete({
name: 'fileSearchStores/my-file_search-store-123/documents/my_doc'
});
REST
curl "https://generativelanguage.googleapis.com/v1beta/fileSearchStores/my-file_search-store-123/documents?key=${GEMINI_API_KEY}"
curl "https://generativelanguage.googleapis.com/v1beta/fileSearchStores/my-file_search-store-123/documents/my_doc?key=${GEMINI_API_KEY}"
curl -X DELETE "https://generativelanguage.googleapis.com/v1beta/fileSearchStores/my-file_search-store-123/documents/my_doc?key=${GEMINI_API_KEY}"
البيانات الوصفية للملف
يمكنك إضافة بيانات وصفية مخصّصة إلى ملفاتك للمساعدة في فلترتها أو تقديم سياق إضافي. البيانات الوصفية هي مجموعة من أزواج المفاتيح والقيم.
Python
op = client.file_search_stores.import_file(
file_search_store_name=file_search_store.name,
file_name=sample_file.name,
custom_metadata=[
{"key": "author", "string_value": "Robert Graves"},
{"key": "year", "numeric_value": 1934}
]
)
JavaScript
let operation = await ai.fileSearchStores.importFile({
fileSearchStoreName: fileSearchStore.name,
fileName: sampleFile.name,
config: {
customMetadata: [
{ key: "author", stringValue: "Robert Graves" },
{ key: "year", numericValue: 1934 }
]
}
});
يكون ذلك مفيدًا عندما يكون لديك مستندات متعددة في مساحة تخزين "البحث في الملفات" وتريد البحث في مجموعة فرعية منها فقط.
Python
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents="Tell me about the book 'I, Claudius'",
config=types.GenerateContentConfig(
tools=[
types.Tool(
file_search=types.FileSearch(
file_search_store_names=[file_search_store.name],
metadata_filter="author=Robert Graves",
)
)
]
)
)
print(response.text)
JavaScript
const response = await ai.models.generateContent({
model: "gemini-3-flash-preview",
contents: "Tell me about the book 'I, Claudius'",
config: {
tools: [
{
fileSearch: {
fileSearchStoreNames: [fileSearchStore.name],
metadataFilter: 'author="Robert Graves"',
}
}
]
}
});
console.log(response.text);
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent?key=${GEMINI_API_KEY}" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts":[{"text": "Tell me about the book I, Claudius"}]
}],
"tools": [{
"file_search": {
"file_search_store_names":["'$STORE_NAME'"],
"metadata_filter": "author = \"Robert Graves\""
}
}]
}' 2> /dev/null > response.json
cat response.json
يمكنك الاطّلاع على إرشادات حول تنفيذ بنية فلتر القائمة لـ metadata_filter على google.aip.dev/160
.
الاقتباسات
عند استخدام أداة "البحث في الملفات"، قد تتضمّن استجابة النموذج اقتباسات تحدّد أجزاء المستندات التي تم تحميلها والتي استُخدمت لإنشاء الإجابة. يساعد ذلك في التحقّق من الحقائق والتحقق منها.
يمكنك الوصول إلى معلومات الاقتباس من خلال السمة grounding_metadata في الاستجابة.
Python
print(response.candidates[0].grounding_metadata)
JavaScript
console.log(JSON.stringify(response.candidates?.[0]?.groundingMetadata, null, 2));
للحصول على معلومات مفصّلة عن بنية البيانات الوصفية للاستناد إلى المصادر، راجِع الأمثلة في File Search cookbook أو قسم الاستناد إلى المصادر في مستندات Grounding with Google Search.
ناتج منظَّم
بدءًا من نماذج Gemini 3، يمكنك الجمع بين أداة "البحث في الملفات" و النتائج المنظَّمة.
Python
from pydantic import BaseModel, Field
class Money(BaseModel):
amount: str = Field(description="The numerical part of the amount.")
currency: str = Field(description="The currency of amount.")
response = client.models.generate_content(
model="gemini-3-flash-preview",
contents="What is the minimum hourly wage in Tokyo right now?",
config=types.GenerateContentConfig(
tools=[
types.Tool(
file_search=types.FileSearch(
file_search_store_names=[file_search_store.name]
)
)
],
response_mime_type="application/json",
response_schema=Money.model_json_schema()
)
)
result = Money.model_validate_json(response.text)
print(result)
JavaScript
import { z } from "zod";
const moneySchema = z.object({
amount: z.string().describe("The numerical part of the amount."),
currency: z.string().describe("The currency of amount."),
});
async function run() {
const response = await ai.models.generateContent({
model: "gemini-3-flash-preview",
contents: "What is the minimum hourly wage in Tokyo right now?",
config: {
tools: [
{
fileSearch: {
fileSearchStoreNames: [file_search_store.name],
},
},
],
responseMimeType: "application/json",
responseJsonSchema: z.toJSONSchema(moneySchema),
},
});
const result = moneySchema.parse(JSON.parse(response.text));
console.log(result);
}
run();
REST
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
"contents": [{
"parts": [{"text": "What is the minimum hourly wage in Tokyo right now?"}]
}],
"tools": [
{
"fileSearch": {
"fileSearchStoreNames": ["$FILE_SEARCH_STORE_NAME"]
}
}
],
"generationConfig": {
"responseMimeType": "application/json",
"responseJsonSchema": {
"type": "object",
"properties": {
"amount": {"type": "string", "description": "The numerical part of the amount."},
"currency": {"type": "string", "description": "The currency of amount."}
},
"required": ["amount", "currency"]
}
}
}'
النماذج المتوافقة
تتيح النماذج التالية أداة "البحث في الملفات":
| الطراز | البحث في الملفات |
|---|---|
| Gemini 3.1 Pro Preview | ✔️ |
| Gemini 3.1 Flash-Lite Preview | ✔️ |
| Gemini 3 Flash Preview | ✔️ |
| Gemini 2.5 Pro | ✔️ |
| Gemini 2.5 Flash-Lite | ✔️ |
مجموعات الأدوات المتوافقة
تتيح نماذج Gemini 3 الجمع بين الأدوات المضمّنة (مثل "البحث في الملفات") والأدوات المخصّصة (استدعاء الدوال). يمكنك الاطّلاع على مزيد من المعلومات في صفحة مجموعات الأدوات.
أنواع الملفات المعتمدة
تتيح أداة "البحث في الملفات" مجموعة كبيرة من تنسيقات الملفات، كما هو موضّح في الأقسام التالية.
أنواع ملفات التطبيقات
application/dartapplication/ecmascriptapplication/jsonapplication/ms-javaapplication/mswordapplication/pdfapplication/sqlapplication/typescriptapplication/vnd.curlapplication/vnd.dartapplication/vnd.ibm.secure-containerapplication/vnd.jupyterapplication/vnd.ms-excelapplication/vnd.oasis.opendocument.textapplication/vnd.openxmlformats-officedocument.presentationml.presentationapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentapplication/vnd.openxmlformats-officedocument.wordprocessingml.templateapplication/x-cshapplication/x-hwpapplication/x-hwp-v5application/x-latexapplication/x-phpapplication/x-powershellapplication/x-shapplication/x-shellscriptapplication/x-texapplication/x-zshapplication/xmlapplication/zip
أنواع الملفات النصية
text/1d-interleaved-parityfectext/REDtext/SGMLtext/cache-manifesttext/calendartext/cqltext/cql-extensiontext/cql-identifiertext/csstext/csvtext/csv-schematext/dnstext/encaprtptext/enrichedtext/exampletext/fhirpathtext/flexfectext/fwdredtext/gff3text/grammar-ref-listtext/hl7v2text/htmltext/javascripttext/jcr-cndtext/jsxtext/markdowntext/mizartext/n3text/parameterstext/parityfectext/phptext/plaintext/provenance-notationtext/prs.fallenstein.rsttext/prs.lines.tagtext/prs.prop.logictext/raptorfectext/rfc822-headerstext/rtftext/rtp-enc-aescm128text/rtploopbacktext/rtxtext/sgmltext/shaclctext/shextext/spdxtext/stringstext/t140text/tab-separated-valuestext/texmacstext/trofftext/tsvtext/tsxtext/turtletext/ulpfectext/uri-listtext/vcardtext/vnd.DMClientScripttext/vnd.IPTC.NITFtext/vnd.IPTC.NewsMLtext/vnd.atext/vnd.abctext/vnd.ascii-arttext/vnd.curltext/vnd.debian.copyrighttext/vnd.dvb.subtitletext/vnd.esmertec.theme-descriptortext/vnd.exchangeabletext/vnd.familysearch.gedcomtext/vnd.ficlab.flttext/vnd.flytext/vnd.fmi.flexstortext/vnd.gmltext/vnd.graphviztext/vnd.hanstext/vnd.hgltext/vnd.in3d.3dmltext/vnd.in3d.spottext/vnd.latex-ztext/vnd.motorola.reflextext/vnd.ms-mediapackagetext/vnd.net2phone.commcenter.commandtext/vnd.radisys.msml-basic-layouttext/vnd.senx.warpscripttext/vnd.sositext/vnd.sun.j2me.app-descriptortext/vnd.trolltech.linguisttext/vnd.wap.sitext/vnd.wap.sltext/vnd.wap.wmltext/vnd.wap.wmlscripttext/vtttext/wgsltext/x-asmtext/x-bibtextext/x-bootext/x-ctext/x-c++hdrtext/x-c++srctext/x-cassandratext/x-chdrtext/x-coffeescripttext/x-componenttext/x-cshtext/x-csharptext/x-csrctext/x-cudatext/x-dtext/x-difftext/x-dsrctext/x-emacs-lisptext/x-erlangtext/x-gff3text/x-gotext/x-haskelltext/x-javatext/x-java-propertiestext/x-java-sourcetext/x-kotlintext/x-lilypondtext/x-lisptext/x-literate-haskelltext/x-luatext/x-moctext/x-objcsrctext/x-pascaltext/x-pcs-gcdtext/x-perltext/x-perl-scripttext/x-pythontext/x-python-scripttext/x-r-markdowntext/x-rsrctext/x-rsttext/x-ruby-scripttext/x-rusttext/x-sasstext/x-scalatext/x-schemetext/x-script.pythontext/x-scsstext/x-setexttext/x-sfvtext/x-shtext/x-siestatext/x-sostext/x-sqltext/x-swifttext/x-tcltext/x-textext/x-vbasictext/x-vcalendartext/xmltext/xml-dtdtext/xml-external-parsed-entitytext/yaml
القيود
- Live API: لا تتيح Live API أداة "البحث في الملفات".
- عدم توافق الأدوات: لا يمكن في الوقت الحالي الجمع بين أداة "البحث في الملفات" وأدوات أخرى، مثل تحديد المصدر باستخدام بحث Google، سياق عنوان URL وما إلى ذلك.
الحدود القصوى لمعدّل الاستخدام
تفرض File Search API الحدود التالية لضمان استقرار الخدمة:
- الحد الأقصى لحجم الملف / الحد الأقصى لكل مستند: 100 ميغابايت
- الحجم الإجمالي لمساحات تخزين "البحث في الملفات" في المشروع (استنادًا إلى مستوى المستخدم):
- المستوى المجاني: 1 غيغابايت
- المستوى 1: 10 غيغابايت
- المستوى 2: 100 غيغابايت
- المستوى 3: 1 تيرابايت
- اقتراح: ننصحك بتقليل حجم كل مساحة تخزين "البحث في الملفات" إلى أقل من 20 غيغابايت لضمان الحد الأدنى من وقت استجابة الاسترجاع.
الأسعار
- يتم تحصيل رسوم من المطوّرين مقابل عمليات التضمين في وقت الفهرسة استنادًا إلى الأسعار الحالية لعمليات التضمين (0.15 دولار أمريكي لكل مليون رمز).
- مساحة التخزين مجانية.
- عمليات التضمين في وقت طلب البحث مجانية.
- يتم تحصيل رسوم مقابل رموز المستند الذي تم استرجاعه كرموز سياق عادية .
الخطوات التالية
- راجِع مرجع واجهة برمجة التطبيقات لمساحات تخزين "البحث في الملفات" ومستندات "البحث في الملفات" .