مبادئ محركات البحث
مقدمة
تبحث عن "فستان أحمر" على تاوباو، وخلال 0.1 ثانية تجد النتائج الأكثر صلة من بين مليارات المنتجات - كيف يحدث هذا؟ محركات البحث هي واحدة من أهم البنى التحتية للإنترنت، من Google إلى البحث الداخلي في المتاجر الإلكترونية، مبادئها الأساسية واحدة: الفهرس المقلوب + ترتيب حسب الصلة.
ماذا ستتعلم في هذا المقال؟
بعد إكمال هذا الفصل، ستكتسب:
- الفهرس المقلوب: فهم بنية البيانات الأساسية لمحركات البحث
- تقنيات التقسيم: فهم تحديات التقسيم اللغوي الصيني والحلول الشائعة
- ترتيب حسب الصلة: إتقان المبادئ الأساسية لـ TF-IDF و BM25
- Elasticsearch: فهم بنية أشهر محرك بحث وحالات استخدامه
- تحسين البحث: إتقان وظائف البحث العملية مثل المرادفات والتصحيح والتمييز
| الفصل | المحتوى | المفاهيم الأساسية |
|---|---|---|
| الفصل 1 | الفهرس المقلوب | الفهرس الأمامي مقابل الفهرس المقلوب |
| الفصل 2 | التقسيم والتحليل | التقسيم اللغوي الصيني، كلمات التوقف، استخراج الجذور |
| الفصل 3 | ترتيب حسب الصلة | TF-IDF، BM25 |
| الفصل 4 | Elasticsearch | البنية الموزعة، الأجزاء، النسخ المتماثلة |
| الفصل 5 | تحسين البحث | المرادفات، التصحيح، الإكمال التلقائي |
0. النظرة الشاملة: ما هو جوهر البحث؟
جوهر البحث هو مشكلة استرجاع المعلومات (Information Retrieval): بالنظر إلى استعلام، ابحث عن أكثر الوثائق صلة من بين كم هائل من الوثائق، وأعدها مرتبة حسب الصلة.
تنقسم هذه العملية إلى مرحلتين:
- مرحلة الفهرسة (غير متصلة): معالجة جميع الوثائق مسبقًا، وبناء هيكل بحث فعال
- مرحلة الاستعلام (متصلة): عندما يدخل المستخدم كلمات مفتاحية، ابحث بسرعة عن الوثائق المطابقة ورتبها
لماذا لا يمكن استخدام استعلام LIKE في قاعدة البيانات؟
SELECT * FROM products WHERE name LIKE '%فستان أحمر%' يبدو أنه يمكنه البحث، لكنه يتطلب مسحًا كاملًا للجدول - فحص كل سجل صفًا بصف. عندما يصل حجم البيانات إلى ملايين السجلات، يصبح هذا الاستعلام بطيئًا جدًا لدرجة عدم إمكانية استخدامه. الفهرس المقلوب يحول هذه العملية من O(n) إلى بحث O(1).
1. الفهرس المقلوب: "قلب" محرك البحث
قواعد البيانات التقليدية تستخدم الفهرس الأمامي: من معرف الوثيقة إلى محتوى الوثيقة. أما محركات البحث فتستخدم الفهرس المقلوب: من الكلمة المفتاحية إلى قائمة الوثائق التي تحتوي عليها.
| نوع الفهرس | الاتجاه | طريقة البحث | السيناريو المناسب |
|---|---|---|---|
| الفهرس الأمامي | وثيقة → محتوى | معرفة المعرف، البحث عن المحتوى | استعلام المفتاح الأساسي في قاعدة البيانات |
| الفهرس المقلوب | كلمة مفتاحية → قائمة الوثائق | معرفة الكلمة المفتاحية، البحث عن الوثائق | البحث النصي الكامل |
عملية بناء الفهرس المقلوب
- جمع الوثائق: الحصول على جميع الوثائق التي تحتاج إلى البحث
- التقسيم (Tokenization): تقسيم الوثائق إلى كلمات فردية
- بناء التعيينات: تسجيل الكلمات التي تظهر في كل وثيقة (ومواضع ظهورها وتكرارها وما إلى ذلك)
- التخزين الدائم: كتابة الفهرس على القرص لدعم البحث السريع
2. التقسيم والتحليل النصي
التقسيم هو الخطوة الأولى في محرك البحث، وهو أيضًا أكبر تحدٍ للبحث باللغة الصينية. اللغة الإنجليزية تفصل الكلمات بمسافات طبيعيًا، لكن الصينية ليس لديها فواصل - "乒乓球拍卖了" يمكن تقسيمها إلى "乒乓球/拍卖/了" أو "乒乓/球拍/卖/了".
| طريقة التقسيم | الوصف | مثال |
|---|---|---|
| التقسيم القياسي | التقسيم حسب المسافات وعلامات الترقيم (الإنجليزية) | "hello world" → ["hello", "world"] |
| التقسيم الصيني | التقسيم بناءً على القاموس أو النموذج | "搜索引擎" → ["搜索", "引擎"] |
| N-gram | التقسيم بنافذة منزلقة بطول ثابت | "搜索" → ["搜索", "索引"] |
| القاموس المخصص | إضافة كلمات خاصة بالمجال | "iPhone16ProMax" ككلمة واحدة |
خط أنابيب التحليل النصي
التقسيم هو مجرد خطوة واحدة من التحليل النصي، خط الأنابيب الكامل يشمل:
- تصفية الأحرف: إزالة وسوم HTML والأحرف الخاصة
- التقسيم: تقسيم النص إلى كلمات (Token)
- تصفية كلمات التوقف: إزالة الكلمات عالية التكرار عديمة المعنى مثل "的" و "了" و "是"
- توسيع المرادفات: توسيع "هاتف" إلى "هاتف، جوال، هاتف محمول"
- استخراج الجذور: إرجاع "running" إلى "run" (الإنجليزية)
3. ترتيب حسب الصلة: أي نتيجة هي الأكثر "صلة"؟
العثور على الوثائق المطابقة هو الخطوة الأولى فقط، الأهم هو الترتيب - وضع النتائج الأكثر صلة في المقدمة.
| الخوارزمية | المبدأ | الميزات |
|---|---|---|
| TF-IDF | تكرار الكلمة (TF) × تكرار الوثيقة العكسي (IDF) | خوارزمية كلاسيكية، بسيطة وفعالة |
| BM25 | نسخة محسنة من TF-IDF، مع تطبيع طول الوثيقة | الخوارزمية الافتراضية في Elasticsearch |
| البحث المتجهي | تحويل الوثائق والاستعلامات إلى متجهات، وحساب تشابه جيب التمام | يدعم البحث الدلالي |
فهم بديهي لـ TF-IDF
- TF (تكرار الكلمة): كلما ظهرت كلمة أكثر في وثيقة، زاد احتمال ارتباط الوثيقة بهذه الكلمة
- IDF (تكرار الوثيقة العكسي): كلما ظهرت كلمة في عدد أقل من الوثائق، زادت قدرتها على التمييز
- "的" تظهر في جميع الوثائق (IDF منخفض)، لذا البحث عن "的" لا معنى له
- "Elasticsearch" تظهر فقط في وثائق قليلة (IDF مرتفع)، البحث عنها يمكنه التحديد بدقة
4. Elasticsearch: أشهر محرك بحث
Elasticsearch هو أشهر محرك بحث مفتوح المصدر حاليًا، مبني على Apache Lucene، يوفر قدرات بحث نصي كامل موزعة عبر RESTful API.
| المفهوم | الوصف |
|---|---|
| Index | يشبه "الجدول" في قاعدة البيانات، يخزن الوثائق المتشابهة |
| Document | سجل واحد، بصيغة JSON |
| Shard | جزء، تقسيم الفهرس إلى عدة عقد |
| Replica | نسخة متماثلة، توفر توفرًا عاليًا وتوسعًا في القراءة |
| Mapping | تعريف أنواع الحقول، يشبه Schema قاعدة البيانات |
| Analyzer | محلل النص، يحدد قواعد التقسيم |
ES مقابل قاعدة البيانات
Elasticsearch ليس بديلاً عن قاعدة البيانات، بل يعمل كطبقة بحث بالتزامن مع قاعدة البيانات. البنية النموذجية: كتابة البيانات في قاعدة البيانات → مزامنتها إلى ES → طلبات البحث تذهب إلى ES → طلبات التفاصيل تذهب إلى قاعدة البيانات.
5. تحسين البحث: جعل البحث "أذكى"
| وسيلة التحسين | الوصف | التأثير |
|---|---|---|
| المرادفات | "هاتف" يمكنه أيضًا العثور على "جوال" | زيادة معدل الاسترجاع |
| تصحيح الإملاء | "iphoen" يُصحح تلقائيًا إلى "iphone" | التسامح مع الأخطاء |
| الإكمال التلقائي | كتابة "تف" تقترح "تفاح" | تحسين التجربة |
| التمييز | تلوين الكلمات المطابقة باللون الأحمر في نتائج البحث | عرض بديهي |
| تعديل الأوزان | وزن مطابقة العنوان > وزن مطابقة المحتوى | زيادة الدقة |
| التصفية والتجميع | التصفية حسب نطاق السعر والعلامة التجارية | تضييق النطاق |
الخلاصة
محركات البحث هي بنية تحتية أساسية لتطبيقات الإنترنت. فهم المفاهيم الأساسية الثلاثة: الفهرس المقلوب، والتقسيم، وترتيب حسب الصلة، يعني إتقان جوهر محركات البحث.
مراجعة النقاط الرئيسية لهذا الفصل:
- الفهرس المقلوب: التعيين العكسي من الكلمة المفتاحية إلى الوثيقة، هو بنية البيانات الأساسية لمحركات البحث
- التقسيم هو الأساس: التقسيم الصيني هو مفتاح جودة البحث، ويتطلب اختيار مقسم مناسب
- ترتيب BM25: تسجيل الصلة بناءً على تكرار الكلمة وتكرار الوثيقة، هو الخوارزمية الافتراضية في ES
- بنية ES: الأجزاء + النسخ المتماثلة تحقق التوزيع والتوفر العالي
- تحسين البحث: المرادفات والتصحيح والإكمال تجعل البحث أكثر ذكاءً
قراءة إضافية
- توثيق Elasticsearch الرسمي - المرجع الأكثر موثوقية لـ ES
- دليل Elasticsearch الشامل - دليل تمهيدي بالصينية
- Apache Lucene - مكتبة محرك البحث الأساسية لـ ES
- MeiliSearch - محرك بحث خفيف الوزن، مناسب للمشاريع الصغيرة والمتوسطة
- Typesense - محرك بحث فوري مفتوح المصدر