الخلاصة: فقط الملف رقم 1 يحتوي
على العبارة المطلوبة بالترتيب الصحيح.
Proximity & Trade-offs
Proximity queries
LIMIT! /3 STATUTE /3 FEDERAL /2 TORT
مثال
لاستعلام متقدم يستخدم بحث "التقارب" (Proximity).
Meaning of /k:
📏
الرمز /k
يعني "ضمن مجال k من الكلمات".
مثلاً A
/3 B يعني أن B يجب أن تظهر في غضون 3 كلمات قبل أو بعد A.
Positional Indexes are MUST:
هنا تظهر القوة الحقيقية للـ Positional Indexes؛ مستحيل نقدر نعمل هالحكي بالـ Biword index لأنه لا
يعرف المسافات، فقط التلاصق.
Why it Grows: Impact of
Document Length
Need an entry for EACH occurrence
في الفهرس العادي، بنسجل `docID` مرة وحدة
للملف. بس في الموقعي، لازم نسجل كل مكان
ظهرت فيه الكلمة جوا هاض الملف.
TERM FREQ: 0.1% EXAMPLE
Doc Size
Normal
Positional
1,000
1
1
100,000
1
100
WEB PAGE
terms (Short) 1,000~
BOOKS / FILINGS
terms (Massive) +100,000
"The longer the document, the larger the gap between normal and positional indexes"
The Storage Trade-offs
Significant Expansion
الفهرس الموقعي بياخد مساحة تخزين ضخمة
جداً؛ لأنه بيخزن كل "موضع" (رقم مكان) بتظهر فيه الكلمة.
* Even though indices can be compressed, the growth remains "Substantial".
Industry Standard
بالرغم من التكلفة العالية للمساحة، بضل هو المعيار الأساسي؛ لأنه بدونه مستحيل نعمل
جمل بحث (Phrase queries) دقيقة.
💡 الخلاصة: احنا بنضحي بـ "المساحة" عشان نكسب "القوة والدقة".
أغلب محركات البحث اليوم بتستخدم الـ Positional Index كجزء أساسي في ترتيب النتائج (Ranking).
Rules of Thumb & Hybrid
Positional Index: Rules of
Thumb
2x to
4x Size Expansion
الفهرس الموقعي عادة بكون حجمه من ضعفين لـ 4
أضعاف حجم الفهرس العادي (Non-positional).
📦
35%
to 50% of Total Corpus
مقارنة بحجم البيانات الأصلية ككل، الفهرس بياخد مساحة ضخمة بتوصل لـ نصف حجم البيانات الأصلية!
Context: English-like Languages
هذه النسب هي "المتوقع" في اللغات الشبيهة بالإنجليزية؛ قد تختلف في لغات أخرى حسب طبيعة تركيب الكلمات.
🌐
⚠️ تذكر: الفهرس العادي كان بياخد بس 10% من المساحة. هاد التضخم هو "الثمن" اللي بنقصه
عشان نحصل على بحث ذكي ودقيق!
Combination Schemes (The Hybrid Solution)
يمكن دمج الحلين معاً (Biword + Positional) لتحقيق أفضل توازن بين السرعة والحجم.
Fast
Track (Biword) ⚡
نستخدم الـ Biword للعبارات المشهورة جداً
(مثل "Michael Jackson") والكلمات الشائعة (مثل "The Who") لتجنب الـ Merge المكلف.
Precision
Track (Positional) 🎯
نستخدم الـ Positional Index لبقية
العبارات النادرة لضمان الدقة وتوفير المساحة.
"Best of both worlds: Speed for common phrases, flexibility for everything else"