أمثلة على الأسعار

تتضمّن هذه الصفحة أمثلة على كيفية احتساب وحدات الفوترة في بعض السيناريوهات الأكثر شيوعًا. يُرجى العِلم أنّ البيانات التي تتم معالجتها قد تختلف في كل طلب بحث استنادًا إلى عوامل مثل خطة طلب البحث وشكل البيانات والفهارس المتاحة.

ننصحك باستخدام ميزة شرح طلب البحث لفهم تكلفة طلبات البحث المحدّدة وأدائها بشكل أفضل.

عمليات القراءة

تتضمّن معظم عمليات القراءة إما إجراء قراءة نقطية لمستند معيّن أو فحص نطاق من البيانات استنادًا إلى معرّف. تستهلك عمليات القراءة وحدات قراءة. في ما يلي بعض الأمثلة.

تختلف الرسوم المفروضة على طلبات البحث في النص الكامل بين تكلفة إجراء بحث في فهرس نصي وتكلفة استرداد المستندات. يتم تحديد تكلفة إجراء بحث في فهرس نصي حسب مدى تعقيد طلب البحث وكمية البيانات التي يتم فحصها في الفهرس للعثور على النتائج. تشمل العوامل التي تؤثر في هذه التكلفة عدد عبارات البحث وطبيعتها (مثل العبارات والكلمات) وما إذا تم تطبيق تسجيل مدى الصلة وعدد إدخالات الفهرس التي يجب فحصها. تستند تكلفة استرداد المستندات ذات الصلة إلى عدد المستندات وحجمها التي يتم جلبها بعد اكتمال مرحلة البحث.

يحدّد الجدول التالي الرسوم المرتبطة بتنفيذ طلبات البحث في النص الكامل لفهرس منتجات التجارة الإلكترونية لمشتل نباتات. يفترض هذا المثال مجموعة تضم 200,000 من بيانات المنتجات، ويبلغ حجم كل مستند من مستندات بيانات المنتج 2 كيلوبايت، ويبلغ حجم فهرس البحث النصي المقابل 100 ميغابايت تقريبًا.

طلب البحث مثال للرمز وحدات القراءة المقدَّرة المستهلكة لكل طلب بحث التكاليف المقدَّرة (المنطقة: us-central1 بالدولار الأمريكي)
البحث عن منتج "صينية مسطحة" نادرة من نوع "dry water"، ما يؤدي إلى استرداد 3 مستندات
db.products.find(
  {$text: {$search: '"dry water" stack flat'}}
);

10 وحدات قراءة إجمالاً

استنادًا إلى 7 وحدات للبحث في النص الكامل و3 وحدات إضافية للمستندات التي تم عرضها

0.50 دولار أمريكي لكل مليون طلب بحث
البحث عن جميع أشجار الحمضيات الداخلية، ما يؤدي إلى استرداد 36 مستندًا
db.products.find(
  {$text: {$search: '"indoor" "citrus" "tree"'}}
);

42 وحدة قراءة إجمالاً

استنادًا إلى 6 وحدات للبحث في النص الكامل و36 وحدة إضافية للمستندات التي تم عرضها

2.10 دولار أمريكي لكل مليون طلب بحث
البحث عن أوعية زراعة للشرفات حيث توجد الكثير من المنتجات المطابقة ترتيب النتائج حسب مدى الصلة، والاقتصار على أفضل 50 نتيجة بحث
db.products.find(
  {$text: {$search: 'balcony planter'}}
).sort({score: {$meta: "textScore"}}).limit(50);

75 وحدة قراءة إجمالاً

استنادًا إلى 25 وحدة للبحث في النص الكامل و50 وحدة إضافية للمستندات التي تم عرضها

3.75 دولار أمريكي لكل مليون طلب بحث

توضّح هذه الأمثلة كيف تؤثر أنماط طلبات البحث المختلفة في التكاليف:

  • يتضمّن طلب البحث"dry water" عبارة ("dry water") وعبارات إضافية. تكون عمليات البحث عن العبارات أكثر تعقيدًا لأنّ محرّك طلب البحث يحتاج إلى التحقّق من مدى تقارب الرموز وترتيبها، ما يساهم في توفير 7 وحدات قراءة لمرحلة البحث. بما أنّ عدد المستندات المطابقة قليل جدًا، تكون تكلفة استرداد المستندات منخفضة.
  • يبحث طلب البحث"indoor" "citrus" "tree" عن ثلاث عبارات منفصلة. مع أنّ هذا الطلب أقل تعقيدًا قليلاً لكل عبارة من البحث عن عبارة، إلا أنّه لا يزال يتطلّب البحث عن رموز متعددة. تبلغ تكلفة فحص فهرس البحث فيه 6 وحدات قراءة، وهي أقل قليلاً من مثال "dry water"، ولكن يتم عرض 36 مستندًا، ما يزيد من التكلفة الإجمالية.
  • يفرض طلب البحث عن أوعية زراعة الشرفات أعلى تكلفة للبحث في النص الكامل تبلغ 25 وحدة بفارق كبير. يرجع ذلك في المقام الأول إلى أنّه يطلب ترتيب النتائج حسب مدى الصلة (.sort({score: {$meta: "textScore"}}) ) استنادًا إلى عبارات تطابق العديد من المستندات. لتحديد أفضل 50 نتيجة ذات صلة، يجب أن يعثر محرّك طلب البحث على جميع النتائج المحتملة المطابقة لعبارة "balcony" أو "planter"، وأن يحسب درجة مدى الصلة لكل منها، ثم يرتبها. تتطلّب عملية تسجيل مدى الصلة والترتيب هذه لعدد كبير من النتائج المحتملة في الفهرس قدرًا كبيرًا من العمليات الحسابية، حتى لو تم استرداد 50 مستندًا فقط في النهاية. إنّ اتساع نطاق العبارات بالإضافة إلى التكلفة الإضافية لتسجيل مدى الصلة يجعل مرحلة البحث أكثر تكلفة.

طلبات البحث الجغرافية

يتم تحديد الرسوم المفروضة على طلبات البحث الجغرافية حسب مدى تعقيد طلب البحث والشروط المحدّدة والترتيب المستخدَمَين، بالإضافة إلى الموارد المطلوبة لفحص جميع البيانات في الفهرس الجغرافي ذي الصلة.

يحدّد الجدول التالي الرسوم المرتبطة بتنفيذ طلبات البحث الجغرافية لتطبيق خرائط. يفترض هذا المثال مجموعة تضم 1,000,000 مستند تمثّل نقاط الاهتمام، ويبلغ حجم كل مستند من مستندات نقاط الاهتمام 1 كيلوبايت، ويبلغ حجم الفهرس الجغرافي المقابل 60 ميغابايت تقريبًا.

طلب البحث مثال للرمز وحدات القراءة المقدَّرة المستهلكة لكل طلب بحث التكاليف المقدَّرة (المنطقة: us-central1 بالدولار الأمريكي)
العثور على جميع نقاط الاهتمام ضمن مسافة 10 كيلومترات كحد أقصى، ما يؤدي إلى عرض 10 نتائج مطابقة
db.pois.find(
  {location: {
    $near: {
      $geometry: <point>,
      $maxDistance: 10000
    }}})

16 وحدة قراءة إجمالاً

استنادًا إلى 6 وحدات قراءة لطلب البحث الجغرافي و10 وحدات إضافية للمستندات التي تم عرضها

0.80 دولار أمريكي لكل مليون طلب بحث
العثور على جميع نقاط الاهتمام التي لا تتجاوز مسافتها 100 كيلومتر، وعرض أفضل 10 نقاط اهتمام الأقرب من بين 1,000 نتيجة مطابقة
db.pois.find(
  {location: {
    $near: {
      $geometry: <point>,
      $maxDistance: 100000
    }}}).limit(10)

19 وحدة قراءة إجمالاً

استنادًا إلى 9 وحدات قراءة لطلب البحث الجغرافي و10 وحدات إضافية للمستندات التي تم عرضها

0.95 دولار أمريكي لكل مليون طلب بحث

توضّح هذه الأمثلة كيف تؤثر أنماط طلبات البحث المختلفة في التكاليف:

  • طلب البحث عن نطاق جغرافي محدّد يبلغ 10 كيلومترات: يفحص هذا الطلب منطقة جغرافية أصغر. بما أنّه يعثر على 10 نتائج مطابقة فقط ضمن هذا النطاق الجغرافي المحدّد الذي يبلغ 10 كيلومترات، لا يحتاج محرّك طلب البحث إلى بذل الكثير من الجهد لتحديد هذه النقاط وترتيبها حسب المسافة (كما تفعل الدالة $near ضمنيًا). يؤدي ذلك إلى انخفاض تكلفة فحص الفهرس إلى 6 وحدات قراءة.
  • طلب البحث عن نطاق جغرافي محدّد يبلغ 100 كيلومتر: يغطي هذا الطلب منطقة أكبر بكثير. يعثر طلب البحث على 1,000 نتيجة محتملة مطابقة ضمن النطاق الجغرافي المحدّد الذي يبلغ 100 كيلومتر. لتلبية طلب عرض أفضل 10 نقاط اهتمام الأقرب، يحتاج محرّك طلب البحث إلى حساب المسافات وترتيب مجموعة أكبر بكثير من النتائج المحتملة (ما يصل إلى 1,000 نقطة) في الفهرس. إنّ هذا العمل الحسابي الإضافي المتمثل في فرز عدد أكبر من النقاط وترتيبها هو سبب ارتفاع تكلفة طلب البحث الجغرافي إلى 9 وحدات قراءة، مقارنةً بطلب البحث عن نطاق جغرافي محدّد يبلغ 10 كيلومترات، على الرغم من أنّه يعرض أيضًا 10 مستندات فقط.

عمليات القراءة النقطية

في ما يلي مثال على الفوترة لعمليات القراءة النقطية:

  • قراءة نقطية لمستند واحد بحجم 1 كيلوبايت يستهلك: وحدة قراءة واحدة
  • قراءة نقطية لمستند واحد بحجم 4 كيلوبايت يستهلك: وحدة قراءة واحدة
  • قراءة نقطية لمستند واحد بحجم 1 ميغابايت يستهلك: 256 وحدة قراءة
  • قراءة نقطية لـ 100 مستند، يبلغ حجم كل منها 1 كيلوبايت يستهلك: 100 وحدة قراءة

المسح

تتضمّن الأمثلة التالية سيناريوهات تفحص المستندات أو إدخالات الفهرس.

فحص المستندات

  • طلب بحث يفحص 100 مستند، يبلغ حجم كل منها 1 كيلوبايت يستهلك: 25 وحدة قراءة

فحص الفهارس

تكون تكلفة الفحص، من حيث البايتات، هي نفسها بغض النظر عما إذا كان يتم فحص مستند أو فهرس. ومع ذلك، غالبًا ما تكون إدخالات الفهرس أصغر حجمًا. نتيجةً لذلك، يمكن أن توفّر في كثير من الأحيان طريقة أكثر فعالية من حيث التكلفة لفحص البيانات.

  • طلب بحث يفحص 100 إدخال فهرس، يبلغ حجم كل منها 1 كيلوبايت يستهلك: 25 وحدة قراءة
  • طلب بحث يفحص 100 إدخال فهرس، يبلغ حجم كل منها 128 بايت يستهلك: 4 وحدات قراءة

الحد الأدنى لحجم المستند أو إدخال الفهرس

في حالات معيّنة، قد لا يكون من الضروري قراءة محتويات مستند أو إدخال فهرس لتلبية طلب بحث. ويشمل ذلك طلبات البحث البسيطة عن العدد، مثل حساب إجمالي عدد المستندات في مجموعة. في هذه الحالات، يتم تطبيق حد أدنى للتكلفة يبلغ 32 بايت لكل عنصر يتم فحصه.

  • حساب عدد المستندات في مجموعة يفحص طلب البحث 1,000 عنصر في المجموعة. يستهلك: 8 وحدات قراءة

مزيج من عمليات الفحص والقراءة النقطية

تنفّذ العديد من طلبات البحث مزيجًا من عمليات الفحص والقراءة النقطية لتلبية عملية معيّنة.

  • طلب بحث يفحص 128 إدخال فهرس، يبلغ حجم كل منها 256 بايت، ويجري قراءة نقطية لـ 128 مستندًا، يبلغ حجم كل منها 4 كيلوبايت يستهلك: 136 وحدة قراءة، تتألف من:
    • 128 وحدة قراءة لعمليات القراءة النقطية
    • 8 وحدات قراءة لعمليات فحص الفهرس

شرح طلب البحث

تساعدك ميزة "شرح طلب البحث" في فهم كيفية تنفيذ قاعدة البيانات لطلبات البحث. يمكن أن تساعدك التفاصيل المقدَّمة في تحسين طلبات البحث.

تنطبق التكاليف التالية عند استخدام ميزة "شرح طلب البحث":

  • ميزة "شرح طلب البحث" التي تنفّذ طلب البحث: تنطبق تكلفة طلب البحث.
  • ميزة "شرح طلب البحث" باستخدام خيار "الخطة فقط" يستهلك: وحدة قراءة واحدة (الحد الأدنى لتكلفة طلب البحث)

عمليات الكتابة

يتم فرض رسوم على عمليات الكتابة (الإنشاء والتعديل والحذف) استنادًا إلى حجم المستندات والفهارس التي يتم إنشاؤها أو تعديلها أو حذفها أثناء العملية. تستهلك عمليات الكتابة وحدات كتابة. يتم احتساب وحدات الكتابة على شكل شرائح تبلغ 1 كيلوبايت.

لا تتكبّد عمليات الكتابة البسيطة، مثل التعديل حسب رقم تعريف المستند، سوى تكلفة عمليات الكتابة. بالنسبة إلى عمليات الكتابة التي تتطلّب إجراء طلب بحث لتلبية العملية، سيتم أيضًا فرض تكاليف القراءة المرتبطة بطلب البحث.

في ما يلي بعض الأمثلة.

عمليات الإنشاء

  • إنشاء مستند جديد بحجم 10 كيلوبايت بدون فهارس يستهلك: 10 وحدات كتابة
  • إنشاء مستند بحجم 1 كيلوبايت يتضمّن إدخال فهرس واحدًا بحجم 256 بايت في المجموعة يستهلك: وحدتَي كتابة

عمليات التعديل

  • العثور على مستند بحجم 10 كيلوبايت حسب رقم تعريف المستند وتعديله بدون فهارس في المجموعة يستهلك: 10 وحدات كتابة
  • العثور على مستند بحجم 1 كيلوبايت حسب رقم تعريف المستند وتعديل حقل واحد يتضمّن إدخال فهرس واحدًا بحجم 256 بايت يستهلك: 3 وحدات كتابة ملاحظة: يستهلك تعديل إدخال فهرس في هذه الحالة وحدتَي كتابة، إحداهما لحذف إدخال الفهرس والأخرى لإعادة إنشائه.
  • العثور على مستند بحجم 1 كيلوبايت حسب رقم تعريف المستند وعدم تعديل أي شيء (بدون إجراء أي تغييرات) يستهلك: وحدة كتابة واحدة (الحد الأدنى لتكاليف الكتابة)
  • طلب بحث عن جميع المستندات التي يبلغ حجم كل منها 1 كيلوبايت في مجموعة، ما يؤدي إلى فحص 1, 000 مستند، وإدراج حقل جديد بحجم 256 بايت بدون فهارس في المجموعة: 1,000 وحدة قراءة و1, 000 وحدة كتابة

عمليات الحذف

  • حذف مستند بحجم 1 كيلوبايت يتضمّن فهرسًا واحدًا في المجموعة يستهلك: وحدتَي كتابة
  • حذف مستند بحجم 1 كيلوبايت لا يتضمّن أي فهارس في المجموعة يستهلك: وحدة كتابة واحدة

عمليات إنشاء الفهارس

يتم فرض رسوم على عمليات إنشاء الفهارس مقابل إدخالات الفهرس التي يتم إنشاؤها أو تعديلها أثناء عملية الإنشاء. يتم تكبّد هذه التكاليف في أي وقت تتم فيه إضافة تعريف فهرس أو إزالته. تتم فوترة إدخالات الفهرس بشكل مماثل لعمليات الكتابة، ما يؤدي إلى فرض وحدة كتابة واحدة لكل 1 كيلوبايت.

  • إنشاء فهرس جديد لمجموعة تحتوي على 500 مستند، ويبلغ حجم كل إدخال من إدخالات الفهرس 1 كيلوبايت يستهلك: 500 وحدة كتابة
  • حذف فهرس حالي لمجموعة تحتوي على 500 مستند، ويبلغ حجم كل إدخال من إدخالات الفهرس التي تم حذفها 1 كيلوبايت يستهلك: 500 وحدة كتابة