مقدمه :
با پیشرفت بشر در زمینههای مختلف علمی و افزایش سطح آگاهی انسان درباره پدیدههای مختلف و البته نیاز رو به گسترش ما به دانش و اطلاعات در این عصر زمینه برای بروز پدیدههای مختلفی که بتواند خواستههای علمی و اطلاع رسانی انسان را برای برآورده سازد افزایش یافته است . با ساخت کامپیوتر در اواسط قرن گذشته مقداری از نیازهای انسان برآورده شد با گذشت زمان این دستگاه در قسمتهای مختلف جامعه نفوذ کرد و تا امروز که در جاهایی مانند مراکز نظامی، پزشکی و اداری به وفور استفاده میشود .
در دهههای پایانی قرن گذشته با افزایش نیازبه اطلاعات بصورت روزانه گسترش ارتباط بین سازمانها و نهادها . نیاز به یک شبکه جهانی احساس شد که هم اطلاعات به روز شده و فراوانی بتواند در آن وجود داشته باشد و هم به سادگی و ارزان در اختیار مردم قرار گیرد . که اینترنت بر این اساس شکل گرفت . امروزه اینترنت به سرعت در حال وارد شدن به زندگی مردم است این رسانه با مطالب فراوان و متنوعی که دارد توانسته است قشرهای مختلف مردم را به خود جذب کند .
امروزه عده زیادی از مردم عادی، ادارات دولتی، سازمانها ، … در روز از اینترنت استفاده میکنند . به همین خاطر به مکانیزمی نیاز شد که کاربران بتوانند امکان جستجو داشته باشند در نتیجه موتورهای جستجوگر در این رسانه ایجاد شده است تا بتواند مطالب مورد نظر کاربر را به سرعت پیدا کنند .
موتورهای جستجو از ابتدای تشکیل خود با امکان جستجوی مطلب در بعضی از سایتهای اینترنتی قرار گرفتند. این سایتها با گذشت زمان توانستند مکانیزم جستجوی خود را بهینه و از طرفی گستردهتر کنند . با گسترش استفاده از اینترنت احتیاج به موتور جستجوی فارسی بشدت مشاهده میشد که این کار توسط GOOGLE انجام شده است . و میتوان به کمک آن اطلاعات فراوانی را بصورت فارسی در زمینههای مختلف بدست آورد . گستردگی این مطالب بقدری زیاد است که پیشنهاد میشود که هر کاربر اسم خود را یک بار در موتور جستجو نوشته و نتیجه کار را مشاهده کنند .
سایتهای موتور جستجو در حال حاضر نیز در حال بهتر کردن الگوریتم جستجوی خود و اضافه کردن کاراییهای دیگر به سایت خود هستند که در قسمت پایانی تحقیق آمده است . در این تحقیق سعی شده است مطالبی راجع به موتورهای جستجو و انواع آن و نسل
آینده آنها مطالبی آورده شده است .
آرش رخشنده 23/10/1383
موتور جستجوگر چگونه کار می کند ؟
وقتی جستجویی در یک موتور جستجوگر انجام و نتایج جستجو ارائه میشود، کاربر در واقع نتیجه کار بخشهای متفاوت آن موتور جستجوگر را میبینند .
موتور جستجوگر قبلاً پایگاه دادهاش «Database » را آماده کرده است و این گونه نیست که در همان لحظه جستجو، تمام وب را بگردد . بسیاری از خود میپرسند که چگونه امکان دارد گوگل « Google » در کمتر از یک ثانیه تمام سایتهای وب را بگردد و میلیونها صفحه را در نتایج جستجوی خود ارائه کند ؟
نه گوگل و نه هیچ موتور جستجوگر دیگری توانایی انجام این کار را ندارد. همه آنها در زمان پاسخگوی به کاربران، تنها در پایگاه دادهای که در اختیار دارند به جستجو میپردازند و نه در وب ! موتور جستجوگر به کمک بخشهای متفاوت خود، اطلاعات مورد نیاز قبلاً جمعآوری، تجزیه و تحلیل میکند و آنرا در پایگاه دادهاش ذخیره مینماید، بخشهای مجزای یک موتور جستجوگر عبارتند از :
Spider یا عنکبوت
Crawler یا خزنده
Indexer یا بایگانی کننده
Database یا پایگاه داده
Ranker یا سیستم رتبه بندی
الف Spider (عنکبوت)
اسپایدر یا روبوت « Robot » نرم افزاری است که کار جمعآوری اطلاعات مورد نیاز یک موتور جستجوگر را بر عهده دارد . اسپایدر به صفحات مختلف سر میزند، محتوای آنها را میخواند و اطلاعات مورد نیاز موتور جستجوگر را جمعآوری میکند و آنرا در اختیار سایر بخشهای موتور جستجوگر قرار میدهد.
کار یک اسپایدر، بسیار شبیه کار کاربران وب است. همانطور که کاربران، صفحات مختلف را بازدید میکنند، اسپایدر هم این کار را انجام میدهد با این تفاوت که اسپایدر کدهای HTML صفحات را میبیند اما کاربران نتیجه حاصل از کنار هم قرار گرفتن این کدها را.
اسپایدر، به هنگام مشاهده صفحات، از خود بر روی سرورها « رد پا بر جای میگذارد . شما اگر اجازه دسترسی به آمار دید و بازدیدهای صورت گرفته از یک سایت و اتفاقات انجام شده در آنرا داشته باشید، میتوانید مشخص کنید که اسپایدر کدام موتورهای جستجوگر صفحات سایت را مورد بازدید قرار دادهاند .
اسپایدرها کاربردهای دیگری نیز دارند، به عنوان مثال عدهای از آنها به سایتهای مختلف مراجعه میکنند و فقط به بررسی فعال بودن لینکهای آنها میپردازند و یا به دنبال آدرس پست الکترونیکی « Email » افراد میگردند .
ب Crawler (خزنده )
کراولر، نرم افزاری است که به عنوان فرمانده برای اسپایدر عمل میکند. کراولر مشخص میکند که اسپایدر کدام صفحات را مورد بازدید قرار دهد. در واقع کراولر تصمیم میگیرد که کدام یک از لینکهای صفحهای که اسپایدر در حال حاضر در آن قرار دارد، دنبال شود. ممکن است همه آنها را دنبال کند، بعضیها را دنبال کند و یا هیچ کدام را دنبال نکند .
کراولر، ممکن است قبلاً توسط دارندگان موتورهای جستجوگر برنامهریزی شده باشد که آدرسهای خاصی را طبق برنامه در اختیار اسپایدر قرار دهد تا از آنها دیدن کند .
دنبال کردن لینکهای یک صفحه به این بستگی دارد که موتورهای جستجوگر چه حجمی از اطلاعات یک سایت را میتواند در پایگاه دادهاش ذخیره کندو همچنین ممکن است اجازه دسترسی به عضی از صفحات به موتورهای جستجوگر داده نشده باشد.
شما به عنوان دارنده سایت، همان طور که دوست دارید موتورهای جستجوگر اطلاعات شما را با خود ببرند، میتوانید آنها را از بعضی از صفحات سایتتان دور کنید و اجازه دسترسی به محتوای آن صفحات را به موتورهای جستجوگر ندهید .
تنظیم میزان دسترسی موتورهای جستجوگر به محتوای یک سایت توسط پروتکل Robots انجام میشود . به عمل کراولر، خزش (Crawling ) میگویند.
ج Indexer ( بایگانی کننده )
تمام اطلاعات جمعآوری شده توسط اسپایدر در اختیار ایندکسر قرار میگیرد . در این بخش اطلاعات ارسالی مورد تجزیه و تحلیل قرار میگیرند و به بخشهای متفاوتی تقسیم میشوند . تجزیه و تحلیل بدین معنی است که مشخص میشود اطلاعات از کدام صفحه ارسال شده است، چه حجمی دارد، کلمات موجود در آن کدام است، کلمات چند بار تکرار شده است، کلمات در کجای صفحه قرار دارند و… .
در حقیقت ایندکسر صفحه را به پارامترهای آن خرد میکند و تمام این پارامترها را به یک مقیاس عددی تبدیل میکند تا سیستم رتبه بندی بتواند پارامترهای صفحات مختلف را با هم مقایسه کند.
در زمان تجزیه و تحلیل اطلاعات، ایندکسر برای کاهش حجم دادهها از عضی کلمات که بسیار رایج هستند صرفنظر میکند. کلماتی نظیر a ، an ، the ، www ، is و … از این گونه کلمات هستند .
د Database ( پایگاه داده )
تمام دادهها تجزیه و تحلیل شده در ایندکسر، به پایگاه داده ارسال میگردد. در این بخش، دادهها گروهبندی، کدگذاری، و ذخیره میشود . هنچنین دادهها قبل از آنکه ذخیره شوند، فشرده میشوند تا حجم کمی را اشغال کنند.
یک موتور جستجوگر باید پایگاه داده عظیمی داشته باشد و به طور مداوم حجم محتوای آنرا گسترش دهد و البته اطلاعات قدیمی را هم به روز کند. بزرگی و به روز بودن پایگاه داده یک موتور جستجوگر برای آن امتیاز محسوب میگردد. یکی از تفاوتهای اصلی موتورهای جستجوگر در حجم پایگاه داده آنها و همچنین روش ذخیره سازی داده است .
و Ranker ( سیستم رتبه بندی )
بعد از آنکه مراحل قبل انجام شد، موتور جستجوگر آماده پاسخگویی به سئوالات کاربران است. کاربران چند کلمه را در جعبه جستجوی « Search Box » آن وارد میکنند و سپس با فشردن Enter منتظر پاسخ میمانند . در این مرحله، سیستم رتبه بندی وارد عمل میشود و ابتدا تمام صفحات موجود در پایگاه داده، که به موضوع جستجو شده، مرتبط هستند را مشخص میکند . سپس آنها را به ترتیب از بیشترین ارتباط تا کمترین ارتباط مرتب میکند و در نتایج جستجو به کاربر ارائه میکند .
حتی اگر موتور جستجو گر بهترین و کاملترین پایگاه داده را داشته باشد اما نتواند پاسخهای مرتبطی را ارائه کند، یک موتور جستجوگر ضعیف خواهد بود .
سیستم رتبهبندی قلب تپنده یک موتور جستجوگر است و تفاوت اصلی موتورهای جستجوگر در این بخش قرار دارد. سیستم رتبه بندی برای پاسخگویی به سئوالات کاربران، پارامترهای بسیاری را در نظر میگیرد تا بتواند بهترین پاسخها را در اختیار آنها قرار دهد.
الگوریتم ، مجموعهای از دستورالعملها است که موتور جستجوگر با اعمال آنها بر پارامترهای صفحات موجود در پایگاه دادهاش ، تصمیم میگیرد که صفحات مرتبط را چگونه در نتایج جستجو ، مرتب کند . در حال حاضر قدرتمندترین سیستم رتبهبندی را گوگل دراختیار دارد .
البته میتوان با ادغام کردن وظیفههای اسپایدر با کراولر و همچنین ایندکسر با پایگاه داده موتور جستجوگر را شامل سه بخش زیر دانست که این گونه تقسمبندی هم درست میباشد :
کراولر
بایگانی
سیستم رتبهبندی
تذکر برای سهولت در بیان مطالب بعدی هرگاه صحبت از بایگانی کردن ( شدن ) به میان میآید ، مقصود این است که صفحه تجزیه و تحلیل و به پایگاه داده موتور جستجوگر وارد میشود .
برای آنکه تصور درستی از نحوه کار یک موتور جستجوگر داشته باشید مثال غیر متعارف زیر را با هم بررسی میکنیم .
یک شکارچی تصمیم به شکار میگیرد :
کار کراولر:
او قصد دارد برای شکار به منطقه حفاظت شده ابیورد ، در شهرستان درگز ( شمال خراسان ) برود .
پروتکل Robots :
ابتدا تمام محدودیتهای موجود برای شکار در این منطقه را بررسی میکند :
آیا در این منطقه میتوان به شکار پرداخت ؟
کدام حیوانات را میتوان شکار کرد ؟
حداکثر تعداد شکار چه میزانی است ؟
و… .
فرض میکنیم او مجوز شکار یک اوریال ( نوعی آهو ) را دریافت میکند .
کار اسپایدر :
او اوریال رعنا را شکار میکند و سپس آنرا به منزل میبرد .
کار ایندکسر :
شکار را تکهتکه کرده ، گوشت ، استخوان ، دل و قلوه ، کله پاچه و … آنرا بستهبندی میکند و بخشهای زاید شکار را دور میاندازد .
کار پایگاه داده :
بستههای حاصل را درون فریزر قرار داده ، ذخیره میکند .
کار سیستم رتبهبندی :
مهمان سراغ او میآید همسر او بسته به ذائقه مهمانان برای آنها غذا طبخ میکند ، ممکن است عدهای کله پاچه ، عدهای آبگوشت ، عدهای جگر و … دوست داشته باشند . پخت غذا طبق سلیقه مهمانان کار سختی است . ممکن است همه آنها آبگوشت بخواهند اما آنها مسلماً با مزهترین آبگوشت را میخواهند !
انواع موتورهای جستجوگر :
موتورهای جستجوگر( با درجات متفاوتی از موفقیت ) در واقع یک کار انجام میدهند :
فراهم آوردن یک وسیله جستجوی ساده برای کمک به کاربران در رسیدن به اطلاعات مورد نیاز .
برای نیل به این مهم ، موتورهای جستجوگر از اطلاعات موجود در پایگاه دادهشان کمک میگیرند . اطلاعات این پایگاه داده نیز به روشهای گوناگونی تامین میشود . کار جمعآوری داده را اسپایدرها بر عهده دارند . اما آیا همه موتورهای جستجوگر ، اسپایدر دارند ؟ آیا همه اسپایدرها مثل هم کار میکنند ؟
با توجه به نوع جمعآوری اطلاعات ، شیوه ارائه نتایج و مواردی دیگر ، موتورهای جستجوگر به انواع گوناگونی تقسیم میشوند که عبارتند از :
Saerch Engine
Directory
Meta Search Engine
Pay Per Click Search Engine
Specialty Search Engine
الف Saerch Engine یا موتورهای جستجوگر
در این نوع از موتورهای جستجوگر ، کار جمعآوری اطلاعات بر عهده اسپایدرها است . در حالت کلی زمانی که صحبت از موتورهای جستجوگر میشود ، مقصود ، این نوع آن است .
پایگاه داده این نوع از موتورهای جستجوگر بزرگتر از سایر انواع است و اطلاعاتی را که آنها ارائه میدهند ، معمولاً به روزتر میباشد . عملیات به روز رسانی و گسترش پایگاه داده موتورهای جستجوگر از یک هفته تا چند ماه به طول میانجامد .
اسپایدرها ، هیچگاه از کار نمیایستند و به طور مداوم به جمعآوری اطلاعات مشغول هستند. ممکن است اطلاعات جمعآوری شده توسط اسپایدرها از صفحات جدیدی باشد و یا اطلاعات به روز شده از صفحاتی بشد که قبلاً هم به آنها مراجعه کردهاند .
وقتی که صحبت از تکنیکهای بهینهسازی رتبه سایتها میشود در واقع تکنیکهایی مطرحاند که برای کار با این نوع ازموتورهای جستجوگر مؤثرند . بعضی از این نوع موتورهای جستجوگر عبارتند از :
Googole , MSN , Altavista , NorthernLight , WiseNut , Teoma …
ب Directory یا فهرست
دایرکتوریها اطلاعات را در گروههای مختلف دستهبندی میکنند . تفاوت اصلی دایرکتوری با یک موتورهای جستجوگر در این است که دایرکتوری اسپایدر ندارد .
دارندگان سایتها به دایرکتوری مراجعه میکنند ، گروه مناسب برای سایت خود را در آن بر میگزینند و سایت خود را به آن گروه معرفی میکنند . پس از آنکه اطلاعات سایتها به گروههای مختلف ارسال شد ، ویراستاران دایرکتوری آن اطلاعات را بررسی میکنند . در صورتی که گروه درخواست شده ، با زمینه فعالیت سایت معرفی شده یکی باشد و همچنین سایر قوانین دایرکتوری نیز رعایت شده باشد ، سایت معرفی شده را در گروه یاد شده میپذیرد و در غیر اینصورت از قبول آن امتناع میکنند.
در صورتی که کاربران استفاده درستی از گروه دایرکتوری بنماید میتوانند اطلاعات مفیدی رابه کمک آنها کسب کنند .