دیلی جالب

۱۳۸۸ بهمن ۲۹, پنجشنبه

موتور جستجو چگونه کار می کند؟


وقتی جستجویی در یک موتور جستجوگر انجام و نتایج جستجو ارایه می شود، كاربران در واقع نتیجه كار بخش های متفاوت موتور جستجوگر را می بینند. موتور جستجوگر قبلا" پایگاه داده اش را آماده كرده است و این گونه نیست كه درست در همان لحظه جستجو، تمام وب را بگردد. بسیاری از خود می پرسند كه چگونه ممکن است گوگل در كمتر از یك ثانیه تمام سایت های وب را بگردد و میلیون ها صفحه را در نتایج جستجوی خود ارایه كند؟

گوگل و هیچ موتور جستجوگر دیگری توانایی انجام این كار را ندارند. همه آنها در زمان پاسخ گویی به جستجوهای كاربران، تنها در پایگاه داده ای كه در اختیار دارند به جستجو می پردازند و نه در وب! موتور جستجوگر به كمك بخش های متفاوت خود، اطلاعات مورد نیاز را قبلا" جمع آوری، تجزیه و تحلیل می كند، آنرا در پایگاه داده اش ذخیره می نماید و به هنگام جستجوی کاربر تنها در همین پایگاه داده می گردد. بخش های مجزای یك موتور جستجوگر عبارتند از:

* Spider یا عنکبوت
* Crawler یا خزنده
* Indexer یا بایگانی کننده
* Database یا پایگاه داده
* Ranker یا سیستم رتبه بندی


الف Spider- (عنکبوت)
اسپایدر یا روبوت (Robot)، نرم افزاری است كه كار جمع آوری اطلاعات مورد نیاز یك موتور جستجوگر را بر عهده دارد. اسپایدر به صفحات مختلف سر می زند، محتوای آنها را می خواند، لینکها را دنبال می کند، اطلاعات مورد نیاز را جمع آوری می كند و آنرا در اختیار سایر بخش های موتور جستجوگر قرار می دهد. كار یك اسپایدر، بسیار شبیه كار كاربران وب است. همانطور كه كاربران، صفحات مختلف را بازدید می كنند، اسپایدر هم درست این كار را انجام می دهد با این تفاوت كه اسپایدر كدهای HTML صفحات را می بیند اما كاربران نتیجه حاصل از كنار هم قرار گرفتن این كدها را. index.html صفحه ای است كه كاربران آنرا به صورت صفحات معمول وب میبینند.

اما یک اسپایدر آنرا چگونه می بیند؟
برای این كه شما هم بتوانید دنیای وب را از دیدگاه یك اسپایدر ببینید، كافی است كه كدهای

اسپایدر، به هنگام مشاهده صفحات، بر روی سرورها رد پا برجای می گذارد. شما اگر اجازه دسترسی به آمار دید و بازدیدهای صورت گرفته از یک سایت و اتفاقات انجام شده در آن را داشته باشید، می توانید مشخص كنید كه اسپایدر كدام یک از موتورهای جستجوگر صفحات سایت را مورد بازدید قرار داده است. یکی از فعالیتهای اصلی که در SEM انجام می شود تحلیل آمار همین دید و بازدیدها است. (با استفاده از کلید میانبر ctrl u یا مسیر View-soursev متوان کدهای HTML صفحه را دید)

اسپایدرها كاربردهای دیگری نیز دارند، به عنوان مثال عده ای از آنها به سایت های مختلف مراجعه می كنند و فقط به بررسی فعال بودن لینك های آنها می پردازند و یا به دنبال آدرس ایمیل (Email) می گردند.

ب- Crawler (خزنده)
كراولر، نرم افزاری است كه به عنوان یك فرمانده برای اسپایدر عمل می كند. آن مشخص می كند که اسپایدر كدام صفحات را مورد بازدید قرار دهد. در واقع کراولر تصمیم می گیرد كه كدام یك از لینك های صفحه ای كه اسپایدر در حال حاضر در آن قرار دارد، دنبال شود. ممكن است همه آنها را دنبال كند، بعضی ها را دنبال كند و یا هیچ كدام را دنبال نكند.

کراولر، ممكن است قبلا" برنامه ریزی شده باشد که آدرس های خاصی را طبق برنامه، در اختیار اسپایدر قرار دهد تا از آنها دیدن کند. دنبال كردن لینك های یک صفحه به این بستگی دارد كه موتور جستجوگر چه حجمی از اطلاعات یک سایت را می تواند (می خواهد) در پایگاه داده اش ذخیره كند. همچنین ممكن است اجازه دسترسی به بعضی از صفحات به موتورهای جستجوگر داده نشده باشد.

شما به عنوان دارنده سایت، همان طور كه دوست دارید موتورهای جستجوگر اطلاعات سایت شما را با خود ببرند، می توانید آنها را از بعضی صفحات سایت تان دور كنید و اجازه دسترسی به محتوای آن صفحات را به آنها ندهید. موتور جستجو اگر مودب باشد قبل از ورود به هر سایتی ابتدا قوانین دسترسی به محتوای سایت را (در صورت وجود) در فایلی خاص بررسی می کند و از حقوق دسترسی خود اطلاع می یابد. تنظیم میزان دسترسی موتورهای جستجوگر به محتوای یک سایت توسط پروتكل Robots انجام می شود. به عمل کراولر ، خزش (Crawling) می گویند.

ج- Indexer (بایگانی كننده)
تمام اطلاعات جمع آوری شده توسط اسپایدر در اختیار ایندکسر قرار می گیرد. در این بخش اطلاعات ارسالی مورد تجزیه و تحلیل قرار می گیرند و به بخش های متفاوتی تقسیم می شوند. تجزیه و تحلیل بدین معنی است كه مشخص می شود اطلاعات از كدام صفحه ارسال شده است، چه حجمی دارد، كلمات موجود در آن كدامند، کلمات چندبار تكرار شده اند، كلمات در كجای صفحه قرار دارند و ... .

در حقیقت ایندکسر، صفحه را به پارامترهای آن خرد می کند و تمام این پارامترها را به یک مقیاس عددی تبدیل می کند تا سیستم رتبه بندی بتواند پارامترهای صفحات مختلف را با هم مقایسه کند. در زمان تجزیه و تحلیل اطلاعات، ایندکسر برای كاهش حجم داده ها از بعضی كلمات كه بسیار رایج هستند صرفنظر می کند. كلماتی نظیر a ، an ، the ، www ، is و ... . از این گونه كلمات هستند.

د - DataBase (پایگاه داده)
تمام داده های تجزیه و تحلیل شده در ایندکسر، به پایگاه داده ارسال می گردد. در این بخش داده ها گروه بندی، كدگذاری و ذخیره می شود. همچنین داده ها قبل از آنكه ذخیره شوند، طبق تکنیکهای خاصی فشرده می شوند تا حجم كمی از پایگاه داده را اشغال كنند. یك موتور جستجوگر باید پایگاده داده عظیمی داشته باشد و به طور مداوم حجم محتوای آنرا گسترش دهد و البته اطلاعات قدیمی را هم به روز رسانی نماید. بزرگی و به روز بودن پایگاه داده یك موتور جستجوگر برای آن امتیاز محسوب می گردد. یكی از تفاوتهای اصلی موتورهای جستجوگر در حجم پایگاه داده آنها و همچنین روش ذخیره سازی داده ها در پایگاه داده است.

و- Ranker (سیستم رتبه بندی)
بعد از آنكه تمام مراحل قبل انجام شد، موتور جستجوگر آماده پاسخ گویی به سوالات كاربران است. كاربران چند كلمه را در جعبه جستجوی (Search Box) آن وارد می كنند و سپس با فشردن Enter منتظر پــاسخ می مانند. برای پاسخگویی به درخواست کاربر، ابتدا تمام صفحات موجود در پایگاه داده كه به موضوع جستجو شده، مرتبط هستند، مشخص می شوند. پس از آن سیستم رتبه بندی وارد عمل شده، آنها را از بیشترین ارتباط تا كمترین ارتباط مرتب می كند و به عنوان نتایج جستجو به كاربر نمایش می دهد.

حتی اگر موتور جستجوگر بهترین و كامل ترین پایگاه داده را داشته باشد اما نتواند پاسخ های مرتبطی را ارایه كند، یك موتور جستجوگر ضعیف خواهد بود. در حقیقت سیستم رتبه بندی قلب تپنده یك موتور جستجوگر است و تفاوت اصلی موتورهای جستجوگر در این بخش قرار دارد. سیستم رتبه بندی برای پاسخ گویی به سوالات كاربران، پارامترهای بسیاری را در نظر می گیرد تا بتواند بهترین پاسخ ها را در اختیار آنها قرار دارد.

حرفه ای های دنیای SEM به طور خلاصه از آن به Algo ( الگوریتم) یاد می كنند. الگوریتم، مجموعه ای از دستورالعمل ها است كه موتور جستجوگر با اعمال آنها بر پارامترهای صفحات موجود در پایگاه داده اش، تصمیم می گیرد که صفحات مرتبط را چگونه در نتایج جستجو مرتب كند. در حال حاضر قدرتمندترین سیستم رتبه بندی را گوگل در اختیار دارد.

می توان با ادغام کردن اسپایدر با کراولر و همچنین ایندکسر با پایگاه داده، موتور جستجوگر را شامل سه بخش زیر دانست که این گونه تقسیم بندی هم درست می باشد:

* کراولر
* بایگانی
* سیستم رتبه بندی

تذکر- برای سهولت در بیان مطالب بعدی هر گاه صحبت از بایگانی کردن (شدن) به میان می آید، مقصود این است که صفحه تجزیه و تحلیل شده و به پایگاه داده موتور جستجوگر وارد می شود.

برای آنكه تصور درستی از نحوه كار یك موتور جستجوگر داشته باشید داستان نامتعارف زیر را با هم بررسی می كنیم. داستان ما یک شکارچی دارد. او تصمیم به شكار می گیرد:

- کار کراولر:
او قصد دارد برای شكار به یك منطقه حفاظت شده برود :

- پروتكل Robots :
ابتدا تمام محدودیت های موجود برای شكار در این منطقه را بررسی می كند:

* آیا در این منطقه می توان به شکار پرداخت؟
* کدام حیوانات را می توان شکار کرد؟
* حداکثر تعداد شکار چه میزانی است؟
* و ... .

فرض می کنیم او مجوز شكار یک اوریال (نوعی آهو) را از شكاربانی منطقه دریافت می كند.

- کار اسپایدر
او اوریالی رعنا را شكار می كند و سپس آنرا با خود به منزل می برد.

- کار ایندکسر
شكار را تكه تكه كرده، گوشت، استخوان، دل و قلوه، كله پاچه و ... آنرا بسته بندی می كند و بخش های زاید شکار را دور می ریزد.

- کار پایگاه داده
بسته های حاصل را درون فریزر قرار داده، ذخیره می کند.

- کار سیستم رتبه بندی
مهمانان سراغ او می آیند و همسرش بسته به ذائقه مهمانان برای آنها غذا طبخ می كند. ممكن است عده ای كله پاچه، عده ای آبگوشت، عده ای ... دوست داشته باشند. پخت غذا طبق سلیقه مهمانان کار سختی است. ممكن است همه آنها آبگوشت بخواهند اما آنها مسلما" بامزه ترین آبگوشت را می خواهند

هیچ نظری موجود نیست:

ارسال یک نظر