محركات البحث على الانترنت... كيف تصنع؟

30-09-2008

محركات البحث على الانترنت... كيف تصنع؟

 يعتقد البعض أنه من السهل صُنع محرك بحث جديد، ولا يحتاج الأمر إلا لبعض المهارات التقنية والإرادة القوية. إلا أن الكثير من الأمور مخفي وراء الكواليس، وقد لا يخطر ببال مغامر يريد صناعة محركه الخاص. وقد نما عدد مواقع الإنترنت بشكل مطّرد منذ بدايتها في عام 1983، حيث وصل إلى ألف موقع بحلول عام 1984، و10 آلاف في عام 1987، و100 ألف في 1990، ومليون في عام 1992، و26 مليوناً في 1998، ومليار في عام 2000، وصولا إلى أكثر من تريليون صفحة في عام 2008، الأمر الذي يعني أن العثور على المعلومة التي تريدها في الإنترنت من دون استخدام محرك بحث هو أمر شبه مستحيل. وسنستعرض كيف تعمل محركات البحث، ونقدم بعض التحديات والعقبات التي قد تواجه المبرمجين خلال تطوير محرك البحث، مع أخذ أمثلة بعض المحركات المشهورة، وتقديم بعض النصائح للمبرمجين.
 - نما عدد الصفحات التي يعثر عليها محرك جوجل بمعدل 8 أضعاف في فترة 2000 إلى 2005، و125 ضعفا من 2005 إلى 2008. ويستطيع محرك جوجل، لغاية نهاية شهر «تموز» المنصرم، العثور على تريليون رابط Link متفرد في العالم الرقمي، وأكثر من تريليون رابط غير متفرد «كثيرا ما تتكرر روابط المواقع المشهورة في صفحات مختلفة». ويبدأ جوجل عملية المسح أو الـ«زحفCrawl » في صفحات الإنترنت باختصار بالشكل التالي: توجد لدى جوجل قائمة من الصفحات الرئيسية المرتبطة بمواقع أخرى بشكل جيد جدا، ويبدأ برنامج خاص بالبحث في جميع الروابط الموجودة في صفحات هذه القائمة وتسجيلها، ثم البحث في الروابط الموجودة في الصفحات التي وصل إليها من الروابط السابقة، وهكذا.
ويسجل النظام تكرار كل رابط ويقيمه حسب عدد التكرارات، لتظهر النتائج الأكثر تكرارا قبل غيرها. وتجدر الإشارة إلى أن بعض المواقع قد تحتوي على روابط لا نهائية، مثل الروابط الموجودة في مواقع التقويم، حيث يمكن الدخول في رابط «اليوم التالي» بشكل لا نهائي، ولذلك فإن البرنامج لا يأخذ هذه الروابط بعين الاعتبار. وتُصنف الشركة الروابط والصفحات في فهرس Index ضخم خاص بها، وذلك لتسريع عملية البحث، حيث إنه ليس من العملي أن يبحث المحرك في جميع صفحات الإنترنت كلما طلب المستخدم ذلك، بل يفحص النظام المعلومات الموجودة في الفهرس الموجود لديه داخليا. واختلفت الأمور اليوم كثيراً بالنسبة للشركة مقارنة بالسابق، حيث كانت تجرى العمليات التقنية بشكل مجموعات Batch، مثل قيام أحد الكمبيوترات بقياس عدد تكرار الصفحات وتقييمها وفقا لذلك «في خلال ساعات قليلة»، وتجهيز فهرس يمكن استخدامه لعدة ساعات في اليوم قبل تكرار العملية مرة أخرى وتحديث معلومات الفهرس، وهكذا.
أما اليوم، فإن نظام الشركة يُحدّث المعلومات بشكل مستمر ومن دون توقف. ويمكن تشبيه عملية الزحف هذه بتتبع جميع الطرقات والتقاطعات الموجودة على خريطة يبلغ حجمها 50 ألف مرة حجم خريطة الولايات المتحدة الأميركية. وتقوم أنظمة الشركة بهذه العملية عدة مرات في اليوم الواحد. ويعالج محرك جوجل نحو 20 بيتابايت من المعلومات كل يوم «الـ«بيتابايتPetabyte » الواحد هو مليون غيغابايت، أو ألف «تيرابايت»».

- وبناء على الأرقام المذكورة أعلاه، فإنه يمكن تخيل قدرات الأجهزة الخادمة اللازمة لتحليل هذا الكم الكبير من المعلومات، وعرض النتيجة في نحو 0.3 ثانية، ذلك أن صبر المستخدمين سينفد إذا انتظروا أكثر من بضع ثوان. وإن أردنا استكشاف أحجام التخزين المطلوبة، فإن محرك جوجل يحفظ نسخة من كل صفحة «تقريبا» يضعها في فهرسه. ويمكن تخيل أن عملية حفظ نسخ من تريليون صفحة هو أمر ليس بالسهل، وخصوصا مع اختلاف أحجام الصفحات حسب محتواها. ولذلك، فإن أغلبية المحركات تحفظ النصوص الموجودة في الصفحات المفهرسة، وليس الصور وعروض الأفلام وغيرها من الملحقات المختلفة. وازداد معدل حجم الصفحة من 17 كيلوبايت في عام 1995، إلى 93.7 كيلوبايت في عام 2003، وصولا إلى 312 كيلوبايت في عام 2007.
وتجدر الإشارة إلى أن الصفحات التي تحتوي على أحرف غير إنجليزية ستشغل حيزاً أكبر عند حفظها، حيث جربت «الشرق الأوسط» حفظ نص يحتوي على 4280 حرفا إنجليزيا «حوالي صفحتين من مقاس A4 على شكل ملف نصي، وحصلنا على حجم بلغ 4.23 كيلوبايت، إلا أن حجم الملف لعدد الأحرف نفسه ولكن باللغة العربية «بتشفير «يو تي إف-8UTF-8 » القياسي»، وصل إلى 8.38 كيلوبايت، أي ضعف الحجم تقريبا.
ولا ننسى المشاكل التي ستواجه من يصنع المحرك عند طلب البحث عن معلومة هي خليط من عدة لغات، مثل «كأس العالم لكرة القدم South Africa 2010»، حيث يجب البحث في الجزء العربي والإنجليزي وربطهما ببعضهما بعضاً، وذلك أن من يبحث عن هذه المعلومة لا يريد الحصول على جميع المعلومات المتعلقة بـ«كأس العالم لكرة القدم»، أو المعلومات عن جنوب إفريقيا، بل المعلومات المرتبطة بالحدث في المكان المطلوب.
وبالعودة إلى حجم المعلومات التي يجب حفظها، فإن ضربنا عدد الصفحات التي عُثر عليها بمعدل حجم الصفحة، فإن النتيجة ستكون نحو 29 بيتابايت «أو 29 ألف تيرابايت». ويمكن ضغط هذه المعلومات بنسبة 88.95% «أعلى نسبة ضغط للنصوص يمكن الوصول إليها» للوصول إلى نحو 3.2 بيتابايت من المعلومات «يوجد لدى شركات صناعة محركات البحث تقنيات عديدة لتطوير التخزين، حيث إن جوجل تستطيع تخزين حجم 148 غيغابايت من الصفحات «24 مليون صفحة في 7 غيغابايت فقط».
وبحساب أن كلفة القرص الصلب الواحد بسعة 750 غيغابايت هي نحو 65 دولارا أميركيا للكميات التجارية، وبمعرفة أن حجم المعلومات التي يجب تخزينها يتطلب نحو 4270 قرصا صلبا، ستكون تكلفة التخزين نحو2.8 مليون دولار أميركي للأقراص الصلبة التي تخزن المعلومات المفهرسة «لغاية اليوم» فقط. وتجدر الإشارة إلى أنه ليس من العملي وصل هذا العدد من الأقراص الصلبة بالأجهزة الخادمة، إن أمكن عمل ذلك من الناحية التقنية.
أضف إلى ذلك كلفة الأجهزة الخادمة التي يجب عليها البحث عن كلمة واحدة من بين كم المعلومات الموجودة في الفهرس، وبسرعة كبيرة، وكلفة التشغيل والتبريد لهذه الأجهزة، ووجود أجهزة بديلة في حال تعطلها عن العمل، وكلفة اشتراك الإنترنت السريع وغير المحدود «من حيث كم المعلومات الصادرة والواردة» الذي يجب توفيره للمستخدمين، وأجور الصيانة وطاقم العمل، وغيرها من التكاليف المختلفة، فإن الكلفة النهائية ستكون عدة مئات الملايين من الدولارات الأميركية.
وليس من المتوقع أن يكون توفير هذا المبلغ ممكنا للأفراد، أو حتى للشركات متوسطة الحجم، وخصوصا أن محرك البحث يكون مجانيا في العادة، وأن المردود قد يكون من الإعلانات أو من تكامل محرك البحث مع مواقع مختلفة، الأمر الذي يعني أن الحصول على الأرباح سيتطلب سنوات عدة. ويتطلب إنشاء محرك بحث جديد بشكل كامل استثمار القطاع الخاص بشكل مكثف في هذا الأمر، أو دعم الدولة لهذه المشاريع الطموحة. وبناء على ذلك، فإن احتمال تطوير طالب مدرسي أو جامعي لمحرك بحث بشكل مستقل هو أمر بالغ الصعوبة، وخصوصا في ظل هيمنة المحركات العملاقة على الأسواق. ولو كان الأمر بالسهولة المتصورة، لامتلأت الإنترنت بعشرات الآلاف من المحركات المختلفة. ويمكن أن يطور بعض الأفراد أو الشركات محركات بحث بسيطة تكلف كسوراً عشرية من الأرقام المذكورة، ولكن هذه المحركات لن تستطيع الدخول بقوة في الأسواق وتتميز عن غيرها، الأمر الذي شهدناه مراراً وتكراراً في محاولات عديدة اختفى معظمها.

- وعند مقارنة محركات البحث المعروفة ببعضها بعضاً من حيث أحجام الصفحات، تبين أن محرك «ياهو» يخزن جميع المعلومات إن كان حجم الصفحة 210 كيلوبايت أو أقل، وتنخفض نسبة الكلمات التي سيبحث فيها المحرك مع ازدياد حجم الصفحة بشكل مطرد، لتصل إلى 6% من الصفحة عند حجم 3497 كيلوبايت.
أما محرك جوجل، فإنه يخزن الصفحة كاملة لغاية حجم 520 كيلوبايت، وتنخفض النسبة إلى 15% عند حجم 3497 كيلوبايت، في حين يخزن محرك «إم إس إن» الصفحات لغاية حجم 1030 كيلوبايت، وتنخفض النسبة إلى 29% عند حجم 3497 كيلوبايت. وتجدر الإشارة إلى أن بعض محركات البحث تعرض الصفحات الأصغر حجما قبل الأكبر من الناحية الزمنية، حيث يمكن لموقع ما يبلغ حجمه 150 كيلوبايت أن يظهر في نتائج البحث قبل موقع آخر يبلغ حجمه 200 كيلوبايت، وبفارق أيام. ولا ننسى الصعوبات المتمثلة بربط البحث عن الصور والملفات المختلفة بالكلمات التي يريد المستخدم البحث عنها، حيث إن أغلبية الصور هي ملفات ذات أسماء وأرقام عشوائية مخزنة على الأجهزة الخادمة، ويجب ربط الصورة بالسياق الذي ظهرت به وبموقعها في الصفحة والكلمات المحيطة بها، الأمر الذي لا يُعتبر سهلا، نظرا لأن الفقرة المجاورة لأي صورة تتكون من عشرات أو مئات الكلمات. ويجب على أي فرد يريد تطوير محرك بحث بالطريقة الصحيحة تطوير نظام برمجي خاص بتسجيل طلبات البحث وتجهيز جداول بها للمقارنة، وذلك لمعرفة نزعات وتوجهات الأفراد وتطوير المحرك نحو اعتماد خدمات جديدة تناسب الأكثرية، وفق احصاءات الاستخدام.
ومن المفضل اعتماد نظام التصحيح اللغوي لكلمات البحث، حيث إن اقتراح كلمة بديلة للمستخدم عوضا عن تلك الخاطئة التي كتبها سيوفر عليه الوقت بسبب أن المحرك نبهه إلى كلمة خاطئة.
ويجب اعتماد نظام برمجي يقارن بين الكلمة المطلوبة وقائمة بجميع الكلمات، وبسرعة كبيرة. ويستخدم جوجل نظاماً مكوناً من 14 مليون كلمة مرجعية، لا تأخذ حيزاً في الذاكرة سوى 256 ميغابايت على الجهاز الخادم، الأمر الذي يرفع الأداء بشكل كبير. ويستخدم نظام جوجل أسلوب الـ«هاشنغHashing » البرمجي في توزيع الكلمات في الذاكرة لتسريع البحث عنها، مع تحويل كل كلمة يكتبها المستخدم إلى نظير رقمي يعرفه محرك البحث، ذلك أن البحث باستخدام الأرقام في لغات البرمجة أسرع بكثير من استخدام الكلمات أو النصوص. ويتوقف المحرك عند وصول النتائج إلى 40 ألف نتيجة بحث، بغض النظر عن وجود نتائج إضافية أم لا، ذلك أن النظام يتوقع أن يغير المستخدم من كلمات البحث بعد بضع صفحات إن لم يعثر على النتيجة، وعلى ذلك فإنه لا يوجد داعٍ لعرض ملايين الصفحات التي عُثر عليها في فهرس النظام.

- من المحركات العربية المميزة محرك يملي Yamli الذي سيُدهشك إن كنت تدردش مع الأصدقاء بكتابة الكلمات العربية بواسطة الأحرف الإنجليزية. ويستطيع هذا المحرك فهم الكلمات التي تكتبها باللغة الإنجليزية وتقصد بها كلمات عربية، وتحويلها فوراً إلى نظيرتها العربية، مثل تحويله لـ Asharq Al Awsatإلى «الشرق الأوسط»، مع وجود بعض الرموز الخاصة للأحرف العربية غير الموجودة في اللغة الإنجليزية، مثل استخدام الرقم 3 للدلالة على حرف «ع»، وهكذا.

إعداد: ميس العاني

المصدر: الوطن السورية

إضافة تعليق جديد

لا يسمح باستخدام الأحرف الانكليزية في اسم المستخدم. استخدم اسم مستخدم بالعربية

محتويات هذا الحقل سرية ولن تظهر للآخرين.

نص عادي

  • لا يسمح بوسوم HTML.
  • تفصل السطور و الفقرات تلقائيا.
  • يتم تحويل عناوين الإنترنت إلى روابط تلقائيا

تخضع التعليقات لإشراف المحرر لحمايتنا وحمايتكم من خطر محاكم الجرائم الإلكترونية. المزيد...