2018-04-25

محركات البحث - Search Engines

محركات البحث على الانترنت

مقدمة:

إن الأخبار السارة عن الانترنت وعن مكوناته المرئية ( الشبكة العنكبوتيه العالمية ) . وجود العديد من مئات الملايين من الصفحات المتاحة ، في انتظار تقديم معلومات عن مجموعات مذهلة ومتنوعه من المواضيع . ولكن الأخبار السيئة عن الانترنت انه هناك مئات الملايين من الصفحات المتاحة , معظم  هذه الصفحات يتم عنونتها بناءاً على أهواء كاتبها ، جميعهم تقريباً موجودين على أجهزة السيرفرات بأسماء مشفرة . عندما تريد ان تعرف عن موضوع مُعين ، فكيف يمكنك ان تعرف ما هى الصفحات المتاحة للقراءة عن هذا الموضوع؟ فى الغالب ستقوم بما يفعله معظم الناس وهو زيارة احدى محركات البحث على الانترنت.


محركات البحث على الانترنت هى مواقع خاصة على الانترنت والتى صممت لمساعده الناس فى إيجاد المعلومات المخزنة فى مواقع أخرى. هناك إختلافات فى الطرق التى تعمل بها محركات البحث ، ولكنهم جميعاً يؤدون ثلاث مهام أساسية :
  1. يبحثون فى الانترنت او اختيار أجزاء من الانترنت وذلك بناءاً على الكلمات الهامة.
  2. يبقون فهرس او دليل بالكلمات التى تم العثور عليها واين تم العثور عليها .
  3. هى تسمح للمستخدمين بالبحث عن كلمه او مجموعة من الكلمات الموجودة فى الدليل.

الزحف على الانترنت (Web Crawling):

عندما يتكلم معظم الناس على محركات البحث , فإنهم فى الحقيقة يعنون محركات بحث الشبكة العنكبوتية العالمية world wide web. قبل أن تكون صفحات الانترنت هي الجزء المرئى فى الانترنت، كانت هناك بالفعل محركات بحث لمساعدة الناس للحصول على المعلومات عبر الانترنت. برامج مثل Gopher و Archie كانت تحتفظ  بفهرس للملفات المخزنة على الخوادم (السيرفرات) المتصلة بالانترنت، وقللت بشكل كبير من مقدار الوقت المطلوب لإيجاد البرامج و الوثائق. فى أواخر الثمانينات كان الحصول على معلومات قيمة من الانترنت تعنى معرفة كيفية استخدام " gopher " و " Archie " و " Veronica " والبرامج الأخرى الشبيهة بها.


اليوم معظم مستخدمى الانترنت يحصرون عمليات البحث الى صفحات الانترنت، ولذلك فأننا فى هذه المقالة سوف نتحدث فقط عن محركات البحث التى تركز على محتويات صفحات الانترنت .

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

قبل ان يخبرك محرك البحث عن مكان ملف او وثيقة ما ، لابد ان يعرف مكان وجودها اولاً. ولايجاد المعلومات عبر مئات الملايين من صفحات الانترنت الموجودة، يقوم محرك البحث باستخدام برامج خاصه تدعى Spiders   (عناكب)، لبناء قوائم من الكلمات التى وجدت على مواقع الانترنت.
عندما يبنى العنكبوت قائمته الخاصة ، فإن هذه العملية تدعى Web crawling  ( زحف الشبكة العنكبوتيه ).
و من أجل البناء والمحافظة على قائمة مفيدة من الكلمات، فإن عناكب محركات البحث لابد ان تنظر الى الكثير من الصفحات.

كيف تبدأ العناكب رحلتها؟

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




تأخذ العناكب محتويات صفحات الانترنت وتُنشىء مفتاح لبحث الكلمات والتى تُمكن المستخدمين على الانترنت من إيجاد الصفحات التى يبحثون عنها .


بدأ جوجل Google كمحرك بحث أكاديمى. ففى الأوراق التى تشرح كيفية بناء هذا النظام، أعطى كلا من Sergey Brin   و Lawrence Page  مثالاً عن سرعة العناكب الخاصة بهم فى العمل. فقد تم بناء النظام الأول ليستخدم عناكب متعددة عادة ثلاثة فى  المرة الواحدة. كل عنكبوت يقدر ان يحتفظ بما يقارب من 300 اتصال بصفحات الانترنت المفتوحة فى وقت واحد. و فى قمة الأداء تستخدم أربعه عناكب، وبالتالى يمكن لجوجل الزحف لأكثر من 100 صفحة بالثانية، مولداً نحو 600 كيلو بايت من البيانات فى كل ثانية.

حتى يعمل كل شىء بسرعة هذا يعنى بناء نظام يؤمن البيانات اللازمة للعناكب. الاصدارات الأولى من جوجل كانت تمتلك سيرفر مخصص لتوفير عناوين المواقع للعناكب. بدلا من الاعتماد على موفر خدمة الانترنت لتوفير  اسماء الـ DNS  ( Domain Name System ) والذى يترجم اسماء المواقع إلى عناوين، كانت تمتلك جوجل نظام DNS خاص بها، من أجل تقليل التأخير الى الحد الادنى .

عندما ينظر عنكبوت جوجل الى صفحة انترنت فإنه يدون شيئان:
  • الكلمات التى داخل الصفحة.
  • اين تم العثور على الكلمات URL.

يقوم جوجل ايضاً بتسجيل الكلمات التى ترد فى عنوان الصفحة، العناوين الفرعية، بطاقات التعريف (meta tags) و المواقف المهمة الأخرى. وتستخدم هذه الكلمات خلال عمليات البحث اللاحقة للمستخدم.

العنكبوت الخاص بجوجل تم بناءه ليقوم بفهرسة كل كلمة هامة فى الصفحة تاركاً ما يخص المقالات من "a" "an" و "the" للعناكب الأخرى لتأخذ طرق مختلف .

تلك الطرق المختلفة عادة تحاول ان تجعل العنكبوت أسرع مما يسمح للمستخدم ان يبحث بشكل أكثر كفاءة او الأثنين وعلى سبيل المثال بعض العناكب تحتفظ بمسار الكلمات فى العنوان، العناوين الفرعية، و الروابط جنبا إلى جنب مع المائة كلمة الأكثر استخداما فى الصفحة وكل كلمة في السطور العشرين الاولى من النص. وقال Lycos  لاستخدام هذا النهج لـ spidering للويب.
فى بعض الأنظمة الأخرى مثل AltaVista  تذهب فى الأتجاه الاخر ، فإنها تقوم بفهرسة كل كلمة منفرده على حدى فى الصفحة ، متضمنه "a" "an" و "the" وكل الكلمات الغيرهامة .  للوصول الى التكامل فى هذا النهج هو التطابق بين الأنظمة الاخرى فى الأهتمام المُعطى للجزء غير المرئى لصفحات الانترنت والعلامات الوصفيه .

بطاقات التعريف (Meta tags):

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

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

على سبيل المثال، بفرض وجود لعبة تقوم بأنشاء صفحة جديدة فى كل مرة يتم عرض هذه اللعبه او فى حاله تتبع اى ارتباطبهذه الصفحة. لو دخل عنكبوت الى احد هذه الصفحات وبدء فى تتبع جميع الأرتباطات لصفحة جديدة، يمكن ان تُخطىء اللعبة فى حالة وجود لاعب سريع، ومن الممكن أن تخرج عن نطاق السيطرة، ولتجنب مثل هذه المواقف، تم تطوير بروتوكول استبعاد الروبوت (robot exclusion protocol). هذا البروتوكول يتم تنفيذه فى جزء بطاقات التعريف فى بداية الصفحة، فهى تخبر العنكبوت ان يغادر الصفحة بمفرده بدون أن يقوم بفهرسة الكلمات ولا محاولة لتتبع روابطها.

بناء الفهرس (Building the Index):

و بمجرد أن تنتهى العناكب من مهمة إيجاد المعلومات على صفحة الويب (ينبغى ان نلاحظ ان هذه المهمة فى الحقيقة لا تنتهى أبداً وذلك نظراً لطبيعة تغير محتويات الانترنت باستمرار وهذا يعني أن العناكب دائما تعمل)، لابد ان يخزن محرك البحث المعلومات بطريقه تجعلها مفيدة. هناك نوعان رئيسيين من المكونات تجتمع معاً لجعل البيانات التى تم جمعها فى متناول الجميع :
-          المعلومات المخزنة مع البيانات.
-          الطريقة التى بها يتم بها فهرسة المعلومات.

فى أبسط الحالات يمكن لمحرك البحث تخزين الكلمة والمكان URL حيث تم العثور عليها. فى الواقع هذا يستخدم مع محركات البحث محدودة الأستخدام، وحيث أنه لا توجد أى وسيلة للقول ما إذا كانت الكلمة تستخدم بطريقة مهمة او تافهه فى الصفحة، ما إذا كان قد تم استخدام الكلمة مرة واحدة او عدة مرات، او ان الصفحة احتوت على ارتباطات لصفحات اخرى تحتوى على الكلمة ذاتها. وبعبارة أخرى لن يكون هناك أى وسيلة لبناء قائمة التصنيف (Ranking List) التى تحاول تقديم الصفحات الأكثر إفادة فى أعلى قائمة نتائج البحث.

للوصول الى أكثر النتائج إفادة، تقوم أغلب محركات البحث تخزن أكثر من مجرد الكلمة ومكان العثور عليها URL، ربما يخزن محرك البحث عدد مرات تكرار ظهور الكلمة فى الصفحة، ربما يعيين محرك البحث وزن (Weight) لكل إدخال مع زيادة الوزن للكلمات التى تظهر قريبة من اعلى المستند، فى العناوين الفرعية ، فى الإرتباطات، فى بطاقات التعريف (meta tags)، او فى عنوان الصفحة.

كل محرك بحث تجارى لديه صيغه مختلفه لتعيين الوزن للكلمة فى الفهرس. هذا هو أحد اسباب ظهور نتائج مختلفة عند البحث عن كلمة واحدة فى اكثر من محرك بحث.

بغض النظر عن المزيج الدقيق للقطع الإضافية للمعلومات المخزنة بواسطة محرك البحث، سيتم تشفير البيانات لتوفير مساحة التخزين. على سبيل المثال يستخدم جوجل 2 بايت (كل منها مكونة من 8 بتات) لتخزين معلومات عن تقييم الكلمات (weighting)، سواء  كانت الكلمة ذات حروف كبيرة، حجم الخط، مكانها، وبقية المعلومات للمساعدة فى التصنيف. كل عامل من هذه العوامل قد يشغل 2 او 3 بت من الـ 2 بايت (8 بت = 1 بايت). ونتيجة لذلك يمكن تخزين كمية كبيرة من المعلومات فى شكل مضغوط جداً. بعد ان يتم ضغط المعلومات فأنها تصبح جاهزة للفهرسة.

للفهرس هدف وحيد، وهو ان يسمح للمعلومات ان يتم إيجادها باسرع وقت ممكن. هناك عدة طرق لكى يتم بناء الفهرس، ولكن واحدة من أكثرالطرق فاعلية هيا بناء جدول مُجزء (Hash table). فى التجزئة (hashing) يتم تطبيق صيغة formula لإرفاق قيمة عددية لكل كلمة. تم تصميم هذه الصيغة لتوزيع الإدخالات بالتساوى عبر عدد محدد سلفاً من الأنقسامات. هذا التوزيع العددى مختلف عن توزيع الكلمات فى الحروف الأبجدية، وهذا هو مفتاح الفاعلية تفى جدول التجزئة (hashing table).

فى اللغة الأنجليزية هناك بعض الحروف التى تبدأ بها العديد من الكلمات بينما توجد حروف اخرى تستخدم بطريقى اقل كبدايات للكلمات. على سبيل المثال الجزء الخاص بحرف الـ  " M " فى القاموس أكبر من الجزء الخاص بحرف " X ". هذا التفاوت يعنى ان العثور على كلمة تبدأ بحرف مشهور سيكون فى مدة أكبر من العثور على كلمة تبدأ بحرف أقل شهره.
تسوى التجزئة hashing الأختلافات وتقلل من متوسط الوقت اللازم للعثور على إدخال خلال البحث. أيضاً تفصل الفهرس من الإدخال الفعلى.

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

بناء البحث (Building Search):

البحث فى الفهرس يتطلب ان يقوم المستخدم بعمل إستعلام Query وارسال هذا الاستعلام لمحرك البحث. الإستعلام ممكن أن يكون بسيطاً، كلمة واحدة على الأقل.

بناء إستعلام أكثر تعقيداً يتطلب استخدام العوامل المنطقية (Boolean operators) والتى تسمح بتحسين وتوسيع شروط البحث.

العوامل المنطقية غالبا ما ينظر الى :

  • (AND) كل المصطلحات التى ترتبط فيما بينها  بكلمة AND يجب أن تظهر كلها فى نتائج البحث. بعض محركات البحث تستبدل كلمة " AND " بـ   " + "

  • (OR) على الأقل واحد من ضمن المصطلحات التى ترتبط فيما بينها بكلمة OR يجب ان تظهر فى نتائج البحث.

  • (NOT) المصطلح او المصطلحات الملحقة بـ NOT يجب أن لا تظهر فى نتائج البحث. بعض محركات البحث تستبدل كلمة "NOT" بـ   " _ "

  • (FOLLOWED BY) يجب أن يكون واحد من المصطلحات متبوع مباشرة بالأخر .

  • (NEAR) واحد من المصطلحات يجب أن يكون ضمن عدد محدد من الكلمات من المصطلح الأخر.

  • (Question marks) الكلمات ما بين علامات الاستفهام (?) تعامل على انها عبارة ولابد من إيجاد هذه العبارة داخل ملف أو مستند.

طرق البحث المستقبلية (Future Search):

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

واحدة من مجالات بحوث محركات البحث هو البحث القائم على فهم المحتوى (concept based). بعض من هذه الابحاث يتضمن التحليل الإحصائى للصفحات التى تحتوى على كلمات او عبارات التى تبحث عنها، من أجل العثور على صفحات أخرى قد تكون مهتماً بها.

بالطبع فإن المعلومات المخزنة عن كل صفحة تكون أكبر عند البحث بطريقة فهم المحتوى concept based. وبالتالى يتطلب الامر الكثير من المعالجة للوصول إلى نتائج البحث بهذه الطريقة. ومع ذلك فإن العديد من المجموعات ما زالت تعمل لتحسين من معددلات الأداء ومن النتائج لهذا النوع من محركات البحث.
انتقل أخرون الى مجال أخر من مجالات البحث تدعى اللغة الطبيعية للإستعلام (natural language queries).

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

أكثر موقع اليوم شعبية فى إستخدام اللغة الطبيعية هو Askjeeves.com   الذى يقوم بتحليل الإستعلام بحثا عن الكلمات الرئيسية keywords التى يتم تطبيقها بعد ذلك على الفهرس الذى تم بناءه والخاص بالموقع. هو يعمل فقط مع الإستعلامات البسيطة لكن المنافسة شديدة لتطوير محركات إستعلام اللغة الطبيعية التى يمكنها ان تستقبل استعلامات اكثر تعقيداً.




المصدر:

هناك تعليق واحد:

  1. غير معرف8/5/13 07:13

    I do consider all of the ideas you've offered for your post. They're very
    convincing and will certainly work. Nonetheless, the posts are very short for starters.
    May you please lengthen them a bit from next time? Thanks for the post.


    Also visit my webpage; yoga classes oxford

    ردحذف