محركات البحث
مقدمة
كيف تعمل محركات البحث
محرك البحث: عبارة عن برنامج مصمم للمساعدة المستخدم في العثور على المعلومات المخزنة على نظام حاسوبي مثل الشبكة العالمية الحاسب الشخصي.
من فوائد الإنترنت إحتوائه على كم هائل من المحتوى, فهناك ملايين الصفحات التي تقدم المعلومات في تشكيلة مدهشة من المواضيع. لكن المشكلة تكمن في كيفية وصولنا إلى هذا المحتوى, في استبيان قام به موقع DoubleClick عن كيفية معرفتك بالموقع [صورة 1] أجاب 41% انة عثر على الموقع من محركات البحث.
لكن السيئ في الموضوع أن بعض هذه الصفحات يختلف محتواها عن عنوانها. هنا يأتي دور محركات البحث لتساعد المستخدم في العثور على المعلومات المخزنة في هذه المواقع.
تختلف طريقة عمل محركات البحث عن بعضها, لكنها تشترك في ثلاثة أمور:
البحث في الإنترنت أو أجزاء منه مستندة على كلمات معينة.
فهرسة للكلمات التي تجدها و أين وجدَتها.
تسمح للمستخدم بالبحث عن كلمة أو مجموعة كلمات.
قديماً كانت الفهرسة تتضمن عدد محدود من الصفحات (100,000 صفحة), بالإضافة إلى عدد قليل من عمليات البحث (1000 - 2000 عملية). واليوم تفهرس محركات البحث مئات الملايين من الصفحات, وتتلقى ملايين من عمليات البحث يومياً.
سأوضح في هذا المقال كيفية عمل المهام الأساسية, وكيف تقوم محركات البحث بمساعدتك في الحصول على ما تحتاج من الإنترنت.
نظرة على الوب
عندما يتحدث الناس عن محركات البحث على الإنترنت فهم يقصدون محركات البحث للشبكة العالمية (World Wide Web), فقبل أن يصبح الوب الجزء الأكثر أهمية في الأنترنت, كأن هناك محركات بحث لمساعدة الناس في العثور على المعلومات من الإنترنت. برامج مثل "gopher" و "Archie" إحتفظت بفهارس للملفات المخزنة في الخوادم المتصلة بالإنترنت, و قلصت الوقت الازم لإيجاد البرامج و الوثائق.
في أواخر الثمانينات كأن يجب على الشخص أن يكون على معرفة بطريقة إستخدام gopher, Archie, Veronica ... الخ ليسطيع الحصول على معلومه من الإنترنت.
واللآن حسب إحصائيات موقع seoconsultants يحتل قوقل المركز الأول كأكثر محركات البحث استخداماً
بدأت Google.com كمحرك بحث أكاديمي, في بحث يصف كيف بُني النظام . قام Sergey Brin و Lawrence Page بإعطاء مثال لسرعة عمل الـ web crawler (زواحف الوب) الخاص بهم وهو عبارةخعن برنامج يقوم بتصفح الشبكة العالمية بطريقة أوتوماتيكية منظمة. حيث كأن النظام يستخدم زواحف متعدده (ثلاثة في نفس الوقت) يستطيع الـ crawler الواحد الاتصال بـ 300 رابط لصفحات الوب في نفس الوقت, وفي أوقات الذروة تستخدم أربعة زواحف تستطيع أن تتصفح 100 صفحة في الثانية, وتولد 200 KB/s.إن عملية إرجاع الملعومات بسرعة تعني بناء نظام يوفر المعلومات الازمة لتغذية الـ crawlers. في نظام قوقل القديم يوجد خادم مخصص لتوفير الـ crawlers بالعناوين (URLs) التي يحتاجها. بدلاً من الإعتماد على خادم أسماء النطاقات (DNS) الخاص بمزود خدمات الإنترنت, وفرت قوقل DNS خاص بها لتقلل الوقت الازم لترجمة أسماء الخوادم إلى عناوين.
يقوم الـ crawlers بتسجيل ملاحظتين عند مرورة على صفحة HTML:
الكلمات الموجودة في هذة الصفحة.
أماكن وجود هذة الكلمات.
كما يقوم بفهرسة الكلمات الموجودة في العنوان, العناوين الثانوية, و الـ meta tags . مع إهمال "a," "an" و "the. وتُستخدم هذه الطرق لتسريع عمل الـ crawlers أو للقيام بعمليات بحث كفؤة أو كلاهما معاً. بعض الـ crawlers كما في Lycos تقوم بتتبع كلمات العناوين الرئيسية و الفرعية و أسماء الوصلات , بالإضافة إلى أكثر 100 كلمة أُستخدمت في المقال, و أول 20 كلمة في المقال.
في أنظمة آخرى مثل AltaVista تقوم بفهرسة كل كلمة في المقال بالإضافة إلى "a," "an" و "the. لذلك فإن كفائة و كمالية هذة الطريقة مطابقة للأنظمة الأخرى التي تلقي إهتمام للأجزاء الغير مرئية من الصفحة - meta tags
Meta Tags (بطاقات معلومات الصفحة)
تسمح لصاحب الصفحة بتحديد كلمات دلالية (key words) و المفاهيم التي ستفهرس الصفحة بنائاً عليها. قد يكون ذلك مفيداً في الصفحات التي تحتوي على كلمات قد تحمل أكثر من معنى, حيث توجة محرك البحث إلى أن الكلمة تحمل أكثر من معنى. لكن من عيوبها أن صاحب الصفحة قد يضيف كلمات قد تكون شعبية في عمليات البحث لكنها لا تمثل محتوى الصفحة الفعلي. وللحماية من ذلك تقوم الـ crawlers بالربط بين الكلمات الدلالية و محتوى الصفحة, و تقوم برفض الـ meta tags التي لا تتوافق مع محتوى الصفحة.
قد لا يرغب صاحب الصفحة في ظهور صفحته في محركات البحث الرئيسية, أو لا يريد أن يدخل الـ crawler إلى صفحته. مثل الألعاب التي تبني صفحات جديدة عند عرض جزئية معينة من الصفحة, أو عند الدخول على رابط جديد. فعندما يدخل الـ crawler إلى أحد هذه الصفحات, ويبداء في تتبع الروابط الموجودة فيها, قد تعتقد اللعبة انه لاعب (إنسان) ذو سرعة عالية وتخرج عن السيطرة. لتلافي ذلك, تم تطوير برتوكول الإستثناء الآلي, طُبق هذا البرتوكول في قسم الـ meta tag في بداية صفحة الوب, حيث تخبر الـ crawler أن يترك الصفحة (لا تفهرسها ولا تتبع روابطها).
بناء الفهرس
بعد إنهاء الـ crawler من جمع المعلومات من صفحات الوب ( مع ملاحظة أنها عمليها غير منتهية, بسبب طبيعة الوب المتغيرة والتي تعني زحف دائم للـ crawlers) , يجب على محركات البحث أن تُخزن هذه المعلومات بطريقة تجعلها أكثر فائدة.
هناك مكونان رئيسيان لتسهيل الوصول إلى البيانات المجموعة:
تخزين المعلومات مع البيانات.
طريقة فهرسة المعلومات.
في أسهل الحالات يقوم محرك البحث بتخزين الكلمة و العنوان (URL) الخاص بها. وفي الواقع ذلك يحد من إستخدام محرك البحث, حيث لن تكون هناك طريقة لمعرفة مدى أهمية هذه الكلمة في الصفحة, أو عدد المرات التي أُستخدمت فيها الكلمة في الصفحة, أو ما إذا كانت الصفحة تحتوي على روابط لصفحات تحوي هذه الكلمة. بمعنى آخر, لن تكون هناك طريقة لوضع ترتيب (ranking) للصفحات, لتقديم الصفحات الأكثر فائدة في قائمة نتائج البحث.
ولتوفير نتائج أكثر فائدة تقوم محركات البحث بتخزين ليس فقط الكلمة و العنوان. فقد تخزن عدد المرات التي تظهر فيها الكلمة في الصفحة. العناوين الفرعية, الروابط, عنوأن الصفحة و أو الـ meta tag, وقد يخصص قيمة قابلة للزيادة لكل كلمة تظهر في أعلى الوثيقة. كل محرك بحث تجاري له طريقة مختلفة لتخصيص قيمة لهذه الكلمات في الفهرس. وهذا أحد الأسباب التي تُأدي إلى ظهور نتائج مختلفة لنفس الكلمة في محركات البحث المختلفة.
بإستثناء المعلومات الدقيقة المخزنة من قبل محرك البحث, سيتم تشفير البيانات لتوفير مساحه التخزين.مثلا: تصف ورقة بحث Google إستخدام 2 بايت ( 8 بت لكل واحد) لتخزين المعلومات ( ما إذا كانت الأحرف كبيرة, جحم الخط, الوضع, و معلومات آخرى تُستخدم في الترتيب). كل عامل قد يستهلك 2 أو 3 بت. وذلك يتيح للكثير من المعلومات أن تخزن بشكل مضغوط جداً. وبعد الضغط تكون المعلومات جاهزة للفهرسة.هدف الفهرس ايجاد المعلومات بأسرع وقت ممكن. هناك عدة طرق لبناء الفهرس, لكن أكثر الطرق فاعالية هي الـ hash table. حيث يتم تطبيق صيغة تربط كل كلمة بقيمة عددية. تصمم هذه الصيغة لتوزيع المدخلات بأنتظام على عدد من التقسيمات المحددة مسبقاً. هذا التوزيع العددي مختلف عن التوزيع الأبجدي, وهذا هو المفتاح لـ hash table فعالة.
في اللغة العربية, هناك بعض الأحرف التي تبداء بها الكثير من الكلمات بعكس أحرف أخرى. فمثلا قسم حرف "الألف " في القاموس أعرض من حرف "الظاء".عدم التساوي يعني أن إيجاد كلمة تبداء بحرف أكثر شعبية قد يستغرق وقت أطول من كلمة تبداء بحرف أقل شعبية. يقوم الـ Hashing بتسوية الفرق و يقلل المتوسط لإيجاد المدخل. كما تفصل الفهرس عن المدخل الأساسي. يحتوي الـ hash table على رقم الـ hashed بالإضافة إلى مؤشر يؤشر على البيانات الفعلية. والتي يمكن أن تصنف بأي طريق توفر لها تخزين كفوء. أن الجمع بين الفهرسة الكفؤة و التخزين الفعال يجعل من الممكن الحصول على نتائج سريعة, حتى في عمليات البحث المعقدة.
البحث
عملية البحث في الفهرس تتضمن كتابة إستفسار (query) وإرسالها إلى محرك البحث. قد تكون بسيطة (لكلمة واحد).أو معقدة عن طريق إستخدام Boolean operators التي تسمح بفلترة و تمديد شروط البحث.
أكثر الـ Boolean operators شعبية:
AND (و): كل التعابير المرتبطة مع "AND" يجب أن تظهر في الصفحة أو المستند. بعض محركات البحث تستبدلها بإشاره "+".
OR (أو): على الأقل أحد التعابير المرتبطة مع "OR" يجب أن تظهر في الصفحة أو المستند.
NOT (ليس): كل التعابير المرتبطة مع "NOT" يجب أن لا تظهر في الصفحة أو المستند. بعض محركات البحث تستبدلها بإشاره "-".
FOLLOWED BY (تتبع): أحد التعابير يجب أن يتبع الأخر.
NEAR (قرب): أحد التعابير يجب أن يبعد عدد معين من الكلمات عن التعبير الآخر.
Quotation Marks (علامات التنصيص): الكلمات بين علامات التنصيص تعتبر عبارة واحدة ويجب أن تظهر كاملة في الصفحة أو المستند.
.
مقدمة
كيف تعمل محركات البحث
محرك البحث: عبارة عن برنامج مصمم للمساعدة المستخدم في العثور على المعلومات المخزنة على نظام حاسوبي مثل الشبكة العالمية الحاسب الشخصي.
من فوائد الإنترنت إحتوائه على كم هائل من المحتوى, فهناك ملايين الصفحات التي تقدم المعلومات في تشكيلة مدهشة من المواضيع. لكن المشكلة تكمن في كيفية وصولنا إلى هذا المحتوى, في استبيان قام به موقع DoubleClick عن كيفية معرفتك بالموقع [صورة 1] أجاب 41% انة عثر على الموقع من محركات البحث.
لكن السيئ في الموضوع أن بعض هذه الصفحات يختلف محتواها عن عنوانها. هنا يأتي دور محركات البحث لتساعد المستخدم في العثور على المعلومات المخزنة في هذه المواقع.
تختلف طريقة عمل محركات البحث عن بعضها, لكنها تشترك في ثلاثة أمور:
البحث في الإنترنت أو أجزاء منه مستندة على كلمات معينة.
فهرسة للكلمات التي تجدها و أين وجدَتها.
تسمح للمستخدم بالبحث عن كلمة أو مجموعة كلمات.
قديماً كانت الفهرسة تتضمن عدد محدود من الصفحات (100,000 صفحة), بالإضافة إلى عدد قليل من عمليات البحث (1000 - 2000 عملية). واليوم تفهرس محركات البحث مئات الملايين من الصفحات, وتتلقى ملايين من عمليات البحث يومياً.
سأوضح في هذا المقال كيفية عمل المهام الأساسية, وكيف تقوم محركات البحث بمساعدتك في الحصول على ما تحتاج من الإنترنت.
نظرة على الوب
عندما يتحدث الناس عن محركات البحث على الإنترنت فهم يقصدون محركات البحث للشبكة العالمية (World Wide Web), فقبل أن يصبح الوب الجزء الأكثر أهمية في الأنترنت, كأن هناك محركات بحث لمساعدة الناس في العثور على المعلومات من الإنترنت. برامج مثل "gopher" و "Archie" إحتفظت بفهارس للملفات المخزنة في الخوادم المتصلة بالإنترنت, و قلصت الوقت الازم لإيجاد البرامج و الوثائق.
في أواخر الثمانينات كأن يجب على الشخص أن يكون على معرفة بطريقة إستخدام gopher, Archie, Veronica ... الخ ليسطيع الحصول على معلومه من الإنترنت.
واللآن حسب إحصائيات موقع seoconsultants يحتل قوقل المركز الأول كأكثر محركات البحث استخداماً
بدأت Google.com كمحرك بحث أكاديمي, في بحث يصف كيف بُني النظام . قام Sergey Brin و Lawrence Page بإعطاء مثال لسرعة عمل الـ web crawler (زواحف الوب) الخاص بهم وهو عبارةخعن برنامج يقوم بتصفح الشبكة العالمية بطريقة أوتوماتيكية منظمة. حيث كأن النظام يستخدم زواحف متعدده (ثلاثة في نفس الوقت) يستطيع الـ crawler الواحد الاتصال بـ 300 رابط لصفحات الوب في نفس الوقت, وفي أوقات الذروة تستخدم أربعة زواحف تستطيع أن تتصفح 100 صفحة في الثانية, وتولد 200 KB/s.إن عملية إرجاع الملعومات بسرعة تعني بناء نظام يوفر المعلومات الازمة لتغذية الـ crawlers. في نظام قوقل القديم يوجد خادم مخصص لتوفير الـ crawlers بالعناوين (URLs) التي يحتاجها. بدلاً من الإعتماد على خادم أسماء النطاقات (DNS) الخاص بمزود خدمات الإنترنت, وفرت قوقل DNS خاص بها لتقلل الوقت الازم لترجمة أسماء الخوادم إلى عناوين.
يقوم الـ crawlers بتسجيل ملاحظتين عند مرورة على صفحة HTML:
الكلمات الموجودة في هذة الصفحة.
أماكن وجود هذة الكلمات.
كما يقوم بفهرسة الكلمات الموجودة في العنوان, العناوين الثانوية, و الـ meta tags . مع إهمال "a," "an" و "the. وتُستخدم هذه الطرق لتسريع عمل الـ crawlers أو للقيام بعمليات بحث كفؤة أو كلاهما معاً. بعض الـ crawlers كما في Lycos تقوم بتتبع كلمات العناوين الرئيسية و الفرعية و أسماء الوصلات , بالإضافة إلى أكثر 100 كلمة أُستخدمت في المقال, و أول 20 كلمة في المقال.
في أنظمة آخرى مثل AltaVista تقوم بفهرسة كل كلمة في المقال بالإضافة إلى "a," "an" و "the. لذلك فإن كفائة و كمالية هذة الطريقة مطابقة للأنظمة الأخرى التي تلقي إهتمام للأجزاء الغير مرئية من الصفحة - meta tags
Meta Tags (بطاقات معلومات الصفحة)
تسمح لصاحب الصفحة بتحديد كلمات دلالية (key words) و المفاهيم التي ستفهرس الصفحة بنائاً عليها. قد يكون ذلك مفيداً في الصفحات التي تحتوي على كلمات قد تحمل أكثر من معنى, حيث توجة محرك البحث إلى أن الكلمة تحمل أكثر من معنى. لكن من عيوبها أن صاحب الصفحة قد يضيف كلمات قد تكون شعبية في عمليات البحث لكنها لا تمثل محتوى الصفحة الفعلي. وللحماية من ذلك تقوم الـ crawlers بالربط بين الكلمات الدلالية و محتوى الصفحة, و تقوم برفض الـ meta tags التي لا تتوافق مع محتوى الصفحة.
قد لا يرغب صاحب الصفحة في ظهور صفحته في محركات البحث الرئيسية, أو لا يريد أن يدخل الـ crawler إلى صفحته. مثل الألعاب التي تبني صفحات جديدة عند عرض جزئية معينة من الصفحة, أو عند الدخول على رابط جديد. فعندما يدخل الـ crawler إلى أحد هذه الصفحات, ويبداء في تتبع الروابط الموجودة فيها, قد تعتقد اللعبة انه لاعب (إنسان) ذو سرعة عالية وتخرج عن السيطرة. لتلافي ذلك, تم تطوير برتوكول الإستثناء الآلي, طُبق هذا البرتوكول في قسم الـ meta tag في بداية صفحة الوب, حيث تخبر الـ crawler أن يترك الصفحة (لا تفهرسها ولا تتبع روابطها).
بناء الفهرس
بعد إنهاء الـ crawler من جمع المعلومات من صفحات الوب ( مع ملاحظة أنها عمليها غير منتهية, بسبب طبيعة الوب المتغيرة والتي تعني زحف دائم للـ crawlers) , يجب على محركات البحث أن تُخزن هذه المعلومات بطريقة تجعلها أكثر فائدة.
هناك مكونان رئيسيان لتسهيل الوصول إلى البيانات المجموعة:
تخزين المعلومات مع البيانات.
طريقة فهرسة المعلومات.
في أسهل الحالات يقوم محرك البحث بتخزين الكلمة و العنوان (URL) الخاص بها. وفي الواقع ذلك يحد من إستخدام محرك البحث, حيث لن تكون هناك طريقة لمعرفة مدى أهمية هذه الكلمة في الصفحة, أو عدد المرات التي أُستخدمت فيها الكلمة في الصفحة, أو ما إذا كانت الصفحة تحتوي على روابط لصفحات تحوي هذه الكلمة. بمعنى آخر, لن تكون هناك طريقة لوضع ترتيب (ranking) للصفحات, لتقديم الصفحات الأكثر فائدة في قائمة نتائج البحث.
ولتوفير نتائج أكثر فائدة تقوم محركات البحث بتخزين ليس فقط الكلمة و العنوان. فقد تخزن عدد المرات التي تظهر فيها الكلمة في الصفحة. العناوين الفرعية, الروابط, عنوأن الصفحة و أو الـ meta tag, وقد يخصص قيمة قابلة للزيادة لكل كلمة تظهر في أعلى الوثيقة. كل محرك بحث تجاري له طريقة مختلفة لتخصيص قيمة لهذه الكلمات في الفهرس. وهذا أحد الأسباب التي تُأدي إلى ظهور نتائج مختلفة لنفس الكلمة في محركات البحث المختلفة.
بإستثناء المعلومات الدقيقة المخزنة من قبل محرك البحث, سيتم تشفير البيانات لتوفير مساحه التخزين.مثلا: تصف ورقة بحث Google إستخدام 2 بايت ( 8 بت لكل واحد) لتخزين المعلومات ( ما إذا كانت الأحرف كبيرة, جحم الخط, الوضع, و معلومات آخرى تُستخدم في الترتيب). كل عامل قد يستهلك 2 أو 3 بت. وذلك يتيح للكثير من المعلومات أن تخزن بشكل مضغوط جداً. وبعد الضغط تكون المعلومات جاهزة للفهرسة.هدف الفهرس ايجاد المعلومات بأسرع وقت ممكن. هناك عدة طرق لبناء الفهرس, لكن أكثر الطرق فاعالية هي الـ hash table. حيث يتم تطبيق صيغة تربط كل كلمة بقيمة عددية. تصمم هذه الصيغة لتوزيع المدخلات بأنتظام على عدد من التقسيمات المحددة مسبقاً. هذا التوزيع العددي مختلف عن التوزيع الأبجدي, وهذا هو المفتاح لـ hash table فعالة.
في اللغة العربية, هناك بعض الأحرف التي تبداء بها الكثير من الكلمات بعكس أحرف أخرى. فمثلا قسم حرف "الألف " في القاموس أعرض من حرف "الظاء".عدم التساوي يعني أن إيجاد كلمة تبداء بحرف أكثر شعبية قد يستغرق وقت أطول من كلمة تبداء بحرف أقل شعبية. يقوم الـ Hashing بتسوية الفرق و يقلل المتوسط لإيجاد المدخل. كما تفصل الفهرس عن المدخل الأساسي. يحتوي الـ hash table على رقم الـ hashed بالإضافة إلى مؤشر يؤشر على البيانات الفعلية. والتي يمكن أن تصنف بأي طريق توفر لها تخزين كفوء. أن الجمع بين الفهرسة الكفؤة و التخزين الفعال يجعل من الممكن الحصول على نتائج سريعة, حتى في عمليات البحث المعقدة.
البحث
عملية البحث في الفهرس تتضمن كتابة إستفسار (query) وإرسالها إلى محرك البحث. قد تكون بسيطة (لكلمة واحد).أو معقدة عن طريق إستخدام Boolean operators التي تسمح بفلترة و تمديد شروط البحث.
أكثر الـ Boolean operators شعبية:
AND (و): كل التعابير المرتبطة مع "AND" يجب أن تظهر في الصفحة أو المستند. بعض محركات البحث تستبدلها بإشاره "+".
OR (أو): على الأقل أحد التعابير المرتبطة مع "OR" يجب أن تظهر في الصفحة أو المستند.
NOT (ليس): كل التعابير المرتبطة مع "NOT" يجب أن لا تظهر في الصفحة أو المستند. بعض محركات البحث تستبدلها بإشاره "-".
FOLLOWED BY (تتبع): أحد التعابير يجب أن يتبع الأخر.
NEAR (قرب): أحد التعابير يجب أن يبعد عدد معين من الكلمات عن التعبير الآخر.
Quotation Marks (علامات التنصيص): الكلمات بين علامات التنصيص تعتبر عبارة واحدة ويجب أن تظهر كاملة في الصفحة أو المستند.
.