آبجی
10th April 2010, 03:42 AM
موتور جستجوگر چگونه کار می کند؟
وقتي جستجويي در يک موتور جستجوگر انجام و نتايج جستجو ارايه مي شود، كاربران در واقع نتيجه كار بخش هاي متفاوت موتور جستجوگر را مي بينند. موتور جستجوگر قبلا" پايگاه داده اش را آماده كرده است و اين گونه نيست كه درست در همان لحظه جستجو، تمام وب را بگردد. بسياري از خود مي پرسند كه چگونه امكان دارد گوگل در كمتر از يك ثانيه تمام سايت های وب را بگردد و ميليون ها صفحه را در نتايج جستجوی خود ارايه كند؟
نه گوگل و نه هيچ موتور جستجوگر ديگري توانايي انجام اين كار را ندارند. همه آنها در زمان پاسخ گويي به كاربران، تنها در پايگاه داده اي كه در اختيار دارند به جستجو مي پردازند و نه در وب!
موتور جستجوگر به كمك بخش های متفاوت خود، اطلاعات مورد نياز را قبلا" جمع آوري، تجزيه و تحليل مي كند و آنرا در پايگاه داده اش ذخيره مي نمايد و به هنگام جستجوی کاربر تنها در همين پايگاه داده می گردد.
بخش هاي مجزاي يك موتور جستجوگر عبارتند از:
• Spider يا عنکبوت
• Crawler يا خزنده
• Indexer يا بايگانی کننده
• Database يا پايگاه داده
• Ranker يا سيستم رتبه بندی
الف Spider- ((عنکبوت)
اسپايدر يا روبوت (Robot)، نرم افزاري است كه كار جمع آوري اطلاعات مورد نياز يك موتور جستجوگر را بر عهده دارد. اسپايدر به صفحات مختلف سر مي زند، محتواي آنها را مي خواند، اطلاعات مورد نياز را جمع آوري مي كند و آنرا در اختيار ساير بخش هاي موتور جستجوگر قرار مي دهد.
كار يك اسپايدر، بسيار شبيه كار كاربران وب است. همانطور كه كاربران، صفحات مختلف را بازديد مي كنند، اسپايدر هم درست اين كار را انجام مي دهد با اين تفاوت كه اسپايدر كدهاي HTML صفحات را مي بيند اما كاربران نتيجه حاصل از كنار هم قرار گرفتن اين كدها را.
اما يک اسپايدر آنرا چگونه می بيند؟
براي اين كه شما هم بتوانيد دنياي وب را از ديدگاه يك اسپايدر ببينيد، كافي است كه كدهاي HTML صفحات را مشاهده کنيد. براي اين كار در مرورگر مورد استفاده خود، مسير نشان داده شده
با انجام اين کار فايل متنی به شما نشان داده می شود:
آيا اين دنياي متني برای شما جذاب است؟
اسپايدر، به هنگام مشاهده صفحات، از خود بر روي سرورها رد پا برجای مي گذارد. شما اگر اجازه دسترسي به آمار ديد و بازديدهاي صورت گرفته از يک سايت و اتفاقات انجام شده در آنرا داشته باشيد، مي توانيد مشخص كنيد كه اسپايدر كدام يک از موتورهاي جستجوگر صفحات سايت را مورد بازديد قرار داده اند.
يکی از فعاليتهاي اصلی که در SEM انجام می شود تحليل آمار همين ديد و بازديدها می باشد.
اسپايدرها كاربردهاي ديگري نيز دارند، به عنوان مثال عده اي از آنها به سايت هاي مختلف مراجعه مي كنند و فقط به بررسي فعال بودن لينك هاي آنها مي پردازند و يا به دنبال آدرس پست الكترونيكي (Email) مي گردند.
ب)Crawler –خزنده)
كراولر، نرم افزاري است كه به عنوان يك فرمانده براي اسپايدر عمل مي كند. آن مشخص مي كند که اسپايدر كدام صفحات را مورد بازديد قرار دهد. در واقع کراولر تصميم مي گيرد كه كدام يك از لينك های صفحه ای كه اسپايدر در حال حاضر در آن قرار دارد، دنبال شود. ممكن است همه آنها را دنبال كند، بعضي ها را دنبال كند و يا هيچ كدام را دنبال نكند.
کراولر، ممكن است قبلا" برنامه ريزي شده باشد که آدرس های خاصی را طبق برنامه، در اختيار اسپايدر قرار دهد تا از آنها ديدن کند. دنبال كردن لينك های يک صفحه به اين بستگي دارد كه موتور جستجوگر چه حجمي از اطلاعات يک سايت را مي تواند در پايگاه داده اش ذخيره كند و همچنين ممكن است اجازه دسترسي به بعضي از صفحات به موتورهاي جستجوگر داده نشده باشد.
شما به عنوان دارنده سايت، همان طور كه دوست داريد موتورهاي جستجوگر اطلاعات سايت شما را با خود ببرند، مي توانيد آنها را از بعضي از صفحات سايت تان دور كنيد و اجازه دسترسي به محتواي آن صفحات را به آنها ندهيد. تنظيم ميزان دسترسي موتورهاي جستجوگر به محتوای يک سايت توسط پروتكل Robots انجام مي شود كه در مقالات دیگر سایت به آن پرداخته شده است. به عمل کراولر ، خزش (Crawling) مي گويند.
ج)- Indexer (بايگانی كننده)
تمام اطلاعات جمع آورش شده توسط اسپايدر در اختيار ايندکسر قرار مي گيرد. در اين بخش اطلاعات ارسالي مورد تجزيه و تحليل قرار مي گيرند و به بخش هاي متفاوتي تقسيم مي شوند. تجزيه و تحليل بدين معني است كه مشخص می شود اطلاعات از كدام صفحه ارسال شده است، چه حجمي دارد، كلمات موجود در آن كدام است، کلمات چندبار تكرار شده است، كلمات در كجاي صفحه قرار دارند و ... .
در حقيقت ايندکسر، صفحه را به پارامترهای آن خرد می کند و تمام اين پارامترها را به يک مقياس عددی تبديل می کند تا سيستم رتبه بندي بتواند پارامترهای صفحات مختلف را با هم مقايسه کند.
در زمان تجزيه و تحليل اطلاعات، ايندکسر براي كاهش حجم داده ها از بعضي كلمات كه بسيار رايج هستند صرفنظر مي کند. كلماتي نظير a ، an ، the ، www ، is و ... . از اين گونه كلمات هستند.
د) - DataBase (پايگاه داده)
تمام داده هاي تجزيه و تحليل شده در ايندکسر، به پايگاه داده ارسال مي گردد. در اين بخش داده ها گروه بندي، كدگذاري و ذخيره مي شود. همچنين داده ها قبل از آنكه ذخيره شوند، طبق تکنيکهای خاصی فشرده مي شوند تا حجم كمي ُُاز پايگاه داده را اشغال كنند.
يك موتور جستجوگر بايد پايگاده داده عظيمي داشته باشد و به طور مداوم حجم محتوای آنرا گسترش دهد و البته اطلاعات قديمي را هم به روز رسانی نمايد. بزرگي و به روز بودن پايگاه داده يك موتور جستجوگر براي آن امتياز محسوب مي گردد. يكي از تفاوتهاي اصلي موتورهاي جستجوگر در حجم پايگاه داده آنها و همچنين روش ذخيره سازي داده ها در پايگاه داده است.
و)- Ranker (سيستم رتبه بندی)
بعد از آنكه تمام مراحل قبل انجام شد، موتور جستجوگر آماده پاسخ گويي به سوالات كاربران است. كاربران چند كلمه را در جعبه جستجوي (Search Box) آن وارد مي كنند و سپس با فشردن Enter منتظر پــاسخ مي مانند.
برای پاسخگويي به درخواست کاربر، ابتدا تمام صفحات موجود در پايگاه داده كه به موضوع جستجو شده، مرتبط هستند، مشخص مي شوند. پس از آن سيستم رتبه بندي وارد عمل شده، آنها را از بيشترين ارتباط تا كمترين ارتباط مرتب مي كند و به عنوان نتايج جستجو به كاربر نمايش می دهد.
حتي اگر موتور جستجوگر بهترين و كامل ترين پايگاه داده را داشته باشد اما نتواند پاسخ هاي مرتبطي را ارايه كند، يك موتور جستجوگر ضعيف خواهد بود. در حقيقت سيستم رتبه بندي قلب تپنده يك موتور جستجوگر است و تفاوت اصلي موتورهاي جستجوگر در اين بخش قرار دارد.
سيستم رتبه بندي براي پاسخ گويي به سوالات كاربران، پارامترهاي بسياري را در نظر مي گيرد تا بتواند بهترين پاسخ ها را در اختيار آنها قرار دارد. حرفه اي هاي دنياي SEM به طور خلاصه از آن به Algo ( الگوريتم) ياد مي كنند.
الگوريتم، مجموعه اي از دستورالعمل ها است كه موتور جستجوگر با اعمال آنها بر پارامترهاي صفحات موجود در پايگاه داده اش، تصميم مي گيرد که صفحات مرتبط را چگونه در نتايج جستجو مرتب كند. در حال حاضر قدرتمندترين سيستم رتبه بندي را گوگل در اختيار دارد.
ُمي توان با ادغام کردن اسپايدر با کراولر و همچنين ايندکسر با پايگاه داده، موتور جستجوگر را شامل سه بخش زير دانست که اين گونه تقسيم بندی هم درست می باشد:
• کراولر
• بايگانی
• سيستم رتبه بندی
تذکر- برای سهولت در بيان مطالب بعدی هر گاه صحبت از بايگانی کردن (شدن) به ميان می آيد، مقصود اين است که صفحه تجزيه و تحليل شده و به پايگاه داده موتور جستجوگر وارد مي شود.
براي آنكه تصور درستي از نحوه كار يك موتور جستجوگر داشته باشيد داستان نامتعارف زير را با هم بررسي مي كنيم.
داستان ما يک شکارچی دارد. او تصميم به شكار می گيرد:
- کار کراولر:
او قصد دارد براي شكار به منطقه حفاظت شده ابيورد، واقع در شهرستان درگز (شمالی ترين شهر خراسان بزرگ) برود.
- پروتكل Robots :
ابتدا تمام محدوديت هاي موجود براي شكار در اين منطقه را بررسي مي كند:
• آيا در اين منطقه می توان به شکار پرداخت؟
• کدام حيوانات را می توان شکار کرد؟
• حداکثر تعداد شکار چه ميزانی است؟
• و ... .
فرض می کنيم او مجوز شكار يک اوريال (نوعي آهو) را از شكارباني منطقه دريافت مي كند.
- کار اسپايدر
او اوريالي رعنا را شكار مي كند و سپس آنرا با خود به منزل می برد.
- کار ايندکسر
شكار را تكه تكه كرده، گوشت، استخوان، دل و قلوه، كله پاچه و ... آنرا بسته بندي مي كند و بخش های زايد شکار را دور می ريزد.
- کار پايگاه داده
بسته هاي حاصل را درون فريزر قرار داده، ذخيره می کند.
- کار سيستم رتبه بندی
مهمانان سراغ او مي آيند و همسر او بسته به ذائقه مهمانان براي آنها غذا طبخ مي كند. ممكن است عده اي كله پاچه، عده اي آبگوشت، عده اي جگر و ... دوست داشته باشند. پخت غذا طبق سليقه مهمانان کار سختی است. ممكن است همه آنها آبگوشت بخواهند اما آنها مسلما" بامزه ترين آبگوشت را مي خواهند!
نکته ها:
• شکارچی می توانست برای شکار کبک يا اوريال و يا هر دو به آن منطقه برود همانطور که موتور جستجوگر می تواند از سرور سايت شما انواع فايل (عکس، فايل متنی، فايل اجرايي و ...) درخواست کند.
• غذای خوشمزه را می توانيد با نتايج جستجوی دقيق و مرتبط مقايسه کنيد. اگر شکارچی بهترين شکار را با خود به منزل ببرد اما غذايي خوشمزه و مطابق سليقه مهمانان طبخ نگردد، تمام زحمات هدر رفته است.
• به عنوان آخرين نکته اين مقاله ياد آوری می کنم که به شکار اوريالی رعنا آن هم در منطقه حفاظت شده ابيورد، اصلا فکر نکنيد. اما توصيه می شود که حتما از طبيعت بکر آن ديدن فرماييد (بدون اسلحه!).
وقتي جستجويي در يک موتور جستجوگر انجام و نتايج جستجو ارايه مي شود، كاربران در واقع نتيجه كار بخش هاي متفاوت موتور جستجوگر را مي بينند. موتور جستجوگر قبلا" پايگاه داده اش را آماده كرده است و اين گونه نيست كه درست در همان لحظه جستجو، تمام وب را بگردد. بسياري از خود مي پرسند كه چگونه امكان دارد گوگل در كمتر از يك ثانيه تمام سايت های وب را بگردد و ميليون ها صفحه را در نتايج جستجوی خود ارايه كند؟
نه گوگل و نه هيچ موتور جستجوگر ديگري توانايي انجام اين كار را ندارند. همه آنها در زمان پاسخ گويي به كاربران، تنها در پايگاه داده اي كه در اختيار دارند به جستجو مي پردازند و نه در وب!
موتور جستجوگر به كمك بخش های متفاوت خود، اطلاعات مورد نياز را قبلا" جمع آوري، تجزيه و تحليل مي كند و آنرا در پايگاه داده اش ذخيره مي نمايد و به هنگام جستجوی کاربر تنها در همين پايگاه داده می گردد.
بخش هاي مجزاي يك موتور جستجوگر عبارتند از:
• Spider يا عنکبوت
• Crawler يا خزنده
• Indexer يا بايگانی کننده
• Database يا پايگاه داده
• Ranker يا سيستم رتبه بندی
الف Spider- ((عنکبوت)
اسپايدر يا روبوت (Robot)، نرم افزاري است كه كار جمع آوري اطلاعات مورد نياز يك موتور جستجوگر را بر عهده دارد. اسپايدر به صفحات مختلف سر مي زند، محتواي آنها را مي خواند، اطلاعات مورد نياز را جمع آوري مي كند و آنرا در اختيار ساير بخش هاي موتور جستجوگر قرار مي دهد.
كار يك اسپايدر، بسيار شبيه كار كاربران وب است. همانطور كه كاربران، صفحات مختلف را بازديد مي كنند، اسپايدر هم درست اين كار را انجام مي دهد با اين تفاوت كه اسپايدر كدهاي HTML صفحات را مي بيند اما كاربران نتيجه حاصل از كنار هم قرار گرفتن اين كدها را.
اما يک اسپايدر آنرا چگونه می بيند؟
براي اين كه شما هم بتوانيد دنياي وب را از ديدگاه يك اسپايدر ببينيد، كافي است كه كدهاي HTML صفحات را مشاهده کنيد. براي اين كار در مرورگر مورد استفاده خود، مسير نشان داده شده
با انجام اين کار فايل متنی به شما نشان داده می شود:
آيا اين دنياي متني برای شما جذاب است؟
اسپايدر، به هنگام مشاهده صفحات، از خود بر روي سرورها رد پا برجای مي گذارد. شما اگر اجازه دسترسي به آمار ديد و بازديدهاي صورت گرفته از يک سايت و اتفاقات انجام شده در آنرا داشته باشيد، مي توانيد مشخص كنيد كه اسپايدر كدام يک از موتورهاي جستجوگر صفحات سايت را مورد بازديد قرار داده اند.
يکی از فعاليتهاي اصلی که در SEM انجام می شود تحليل آمار همين ديد و بازديدها می باشد.
اسپايدرها كاربردهاي ديگري نيز دارند، به عنوان مثال عده اي از آنها به سايت هاي مختلف مراجعه مي كنند و فقط به بررسي فعال بودن لينك هاي آنها مي پردازند و يا به دنبال آدرس پست الكترونيكي (Email) مي گردند.
ب)Crawler –خزنده)
كراولر، نرم افزاري است كه به عنوان يك فرمانده براي اسپايدر عمل مي كند. آن مشخص مي كند که اسپايدر كدام صفحات را مورد بازديد قرار دهد. در واقع کراولر تصميم مي گيرد كه كدام يك از لينك های صفحه ای كه اسپايدر در حال حاضر در آن قرار دارد، دنبال شود. ممكن است همه آنها را دنبال كند، بعضي ها را دنبال كند و يا هيچ كدام را دنبال نكند.
کراولر، ممكن است قبلا" برنامه ريزي شده باشد که آدرس های خاصی را طبق برنامه، در اختيار اسپايدر قرار دهد تا از آنها ديدن کند. دنبال كردن لينك های يک صفحه به اين بستگي دارد كه موتور جستجوگر چه حجمي از اطلاعات يک سايت را مي تواند در پايگاه داده اش ذخيره كند و همچنين ممكن است اجازه دسترسي به بعضي از صفحات به موتورهاي جستجوگر داده نشده باشد.
شما به عنوان دارنده سايت، همان طور كه دوست داريد موتورهاي جستجوگر اطلاعات سايت شما را با خود ببرند، مي توانيد آنها را از بعضي از صفحات سايت تان دور كنيد و اجازه دسترسي به محتواي آن صفحات را به آنها ندهيد. تنظيم ميزان دسترسي موتورهاي جستجوگر به محتوای يک سايت توسط پروتكل Robots انجام مي شود كه در مقالات دیگر سایت به آن پرداخته شده است. به عمل کراولر ، خزش (Crawling) مي گويند.
ج)- Indexer (بايگانی كننده)
تمام اطلاعات جمع آورش شده توسط اسپايدر در اختيار ايندکسر قرار مي گيرد. در اين بخش اطلاعات ارسالي مورد تجزيه و تحليل قرار مي گيرند و به بخش هاي متفاوتي تقسيم مي شوند. تجزيه و تحليل بدين معني است كه مشخص می شود اطلاعات از كدام صفحه ارسال شده است، چه حجمي دارد، كلمات موجود در آن كدام است، کلمات چندبار تكرار شده است، كلمات در كجاي صفحه قرار دارند و ... .
در حقيقت ايندکسر، صفحه را به پارامترهای آن خرد می کند و تمام اين پارامترها را به يک مقياس عددی تبديل می کند تا سيستم رتبه بندي بتواند پارامترهای صفحات مختلف را با هم مقايسه کند.
در زمان تجزيه و تحليل اطلاعات، ايندکسر براي كاهش حجم داده ها از بعضي كلمات كه بسيار رايج هستند صرفنظر مي کند. كلماتي نظير a ، an ، the ، www ، is و ... . از اين گونه كلمات هستند.
د) - DataBase (پايگاه داده)
تمام داده هاي تجزيه و تحليل شده در ايندکسر، به پايگاه داده ارسال مي گردد. در اين بخش داده ها گروه بندي، كدگذاري و ذخيره مي شود. همچنين داده ها قبل از آنكه ذخيره شوند، طبق تکنيکهای خاصی فشرده مي شوند تا حجم كمي ُُاز پايگاه داده را اشغال كنند.
يك موتور جستجوگر بايد پايگاده داده عظيمي داشته باشد و به طور مداوم حجم محتوای آنرا گسترش دهد و البته اطلاعات قديمي را هم به روز رسانی نمايد. بزرگي و به روز بودن پايگاه داده يك موتور جستجوگر براي آن امتياز محسوب مي گردد. يكي از تفاوتهاي اصلي موتورهاي جستجوگر در حجم پايگاه داده آنها و همچنين روش ذخيره سازي داده ها در پايگاه داده است.
و)- Ranker (سيستم رتبه بندی)
بعد از آنكه تمام مراحل قبل انجام شد، موتور جستجوگر آماده پاسخ گويي به سوالات كاربران است. كاربران چند كلمه را در جعبه جستجوي (Search Box) آن وارد مي كنند و سپس با فشردن Enter منتظر پــاسخ مي مانند.
برای پاسخگويي به درخواست کاربر، ابتدا تمام صفحات موجود در پايگاه داده كه به موضوع جستجو شده، مرتبط هستند، مشخص مي شوند. پس از آن سيستم رتبه بندي وارد عمل شده، آنها را از بيشترين ارتباط تا كمترين ارتباط مرتب مي كند و به عنوان نتايج جستجو به كاربر نمايش می دهد.
حتي اگر موتور جستجوگر بهترين و كامل ترين پايگاه داده را داشته باشد اما نتواند پاسخ هاي مرتبطي را ارايه كند، يك موتور جستجوگر ضعيف خواهد بود. در حقيقت سيستم رتبه بندي قلب تپنده يك موتور جستجوگر است و تفاوت اصلي موتورهاي جستجوگر در اين بخش قرار دارد.
سيستم رتبه بندي براي پاسخ گويي به سوالات كاربران، پارامترهاي بسياري را در نظر مي گيرد تا بتواند بهترين پاسخ ها را در اختيار آنها قرار دارد. حرفه اي هاي دنياي SEM به طور خلاصه از آن به Algo ( الگوريتم) ياد مي كنند.
الگوريتم، مجموعه اي از دستورالعمل ها است كه موتور جستجوگر با اعمال آنها بر پارامترهاي صفحات موجود در پايگاه داده اش، تصميم مي گيرد که صفحات مرتبط را چگونه در نتايج جستجو مرتب كند. در حال حاضر قدرتمندترين سيستم رتبه بندي را گوگل در اختيار دارد.
ُمي توان با ادغام کردن اسپايدر با کراولر و همچنين ايندکسر با پايگاه داده، موتور جستجوگر را شامل سه بخش زير دانست که اين گونه تقسيم بندی هم درست می باشد:
• کراولر
• بايگانی
• سيستم رتبه بندی
تذکر- برای سهولت در بيان مطالب بعدی هر گاه صحبت از بايگانی کردن (شدن) به ميان می آيد، مقصود اين است که صفحه تجزيه و تحليل شده و به پايگاه داده موتور جستجوگر وارد مي شود.
براي آنكه تصور درستي از نحوه كار يك موتور جستجوگر داشته باشيد داستان نامتعارف زير را با هم بررسي مي كنيم.
داستان ما يک شکارچی دارد. او تصميم به شكار می گيرد:
- کار کراولر:
او قصد دارد براي شكار به منطقه حفاظت شده ابيورد، واقع در شهرستان درگز (شمالی ترين شهر خراسان بزرگ) برود.
- پروتكل Robots :
ابتدا تمام محدوديت هاي موجود براي شكار در اين منطقه را بررسي مي كند:
• آيا در اين منطقه می توان به شکار پرداخت؟
• کدام حيوانات را می توان شکار کرد؟
• حداکثر تعداد شکار چه ميزانی است؟
• و ... .
فرض می کنيم او مجوز شكار يک اوريال (نوعي آهو) را از شكارباني منطقه دريافت مي كند.
- کار اسپايدر
او اوريالي رعنا را شكار مي كند و سپس آنرا با خود به منزل می برد.
- کار ايندکسر
شكار را تكه تكه كرده، گوشت، استخوان، دل و قلوه، كله پاچه و ... آنرا بسته بندي مي كند و بخش های زايد شکار را دور می ريزد.
- کار پايگاه داده
بسته هاي حاصل را درون فريزر قرار داده، ذخيره می کند.
- کار سيستم رتبه بندی
مهمانان سراغ او مي آيند و همسر او بسته به ذائقه مهمانان براي آنها غذا طبخ مي كند. ممكن است عده اي كله پاچه، عده اي آبگوشت، عده اي جگر و ... دوست داشته باشند. پخت غذا طبق سليقه مهمانان کار سختی است. ممكن است همه آنها آبگوشت بخواهند اما آنها مسلما" بامزه ترين آبگوشت را مي خواهند!
نکته ها:
• شکارچی می توانست برای شکار کبک يا اوريال و يا هر دو به آن منطقه برود همانطور که موتور جستجوگر می تواند از سرور سايت شما انواع فايل (عکس، فايل متنی، فايل اجرايي و ...) درخواست کند.
• غذای خوشمزه را می توانيد با نتايج جستجوی دقيق و مرتبط مقايسه کنيد. اگر شکارچی بهترين شکار را با خود به منزل ببرد اما غذايي خوشمزه و مطابق سليقه مهمانان طبخ نگردد، تمام زحمات هدر رفته است.
• به عنوان آخرين نکته اين مقاله ياد آوری می کنم که به شکار اوريالی رعنا آن هم در منطقه حفاظت شده ابيورد، اصلا فکر نکنيد. اما توصيه می شود که حتما از طبيعت بکر آن ديدن فرماييد (بدون اسلحه!).