engine
Collection
Analysis
Module
Indexer
module
Crawl Control
www
Crawler(s)
Text
Utility
Index:
شکل ۲-۴ معماری موتورهای جستجو [۷]
همانگونه که در شکل ۲-۴ دیده می شود هر موتور جستجو بر یک خزنده، برای فراهم آوردن اطلاعات برای انجام اعمالش تکیه دارد. خزنده برنامه ای است که به عنوان نماینده موتور جستجو، صفحات وب را بررسی می کند، همانگونه که یک کاربر با دنبال کردن لینک ها به صفحات مختلف می رسد. به خزنده ها مجموعه آغازینی از آدرس هـا که متعـلق به صفحـاتی اسـت که از وب بازیابی کرده انـد، داده می شود. خزنده ها این آدرس ها را از صفحات بازیابی شده از وب، استخراج می کنند و این اطلاعات را به واحد کنترل خزنده[۳۸] تحویل می دهند. این واحد تعیین می کند که کدام یک از لینک ها در آینده باید مورد بازدید قرار گیرند. واحد کنترل مسئول کنترل و هدایت اعمال خزنده ها می باشد. برخی از عملیات واحد کنترل ممکن است توسط خود خزنده ها انجام گیرد. خزنده ها همچنین صفحات بازیابی شده را به بخشی به نام انباره صفحات[۳۹] می دهند[۷].
خزنده ها بازدید از صفحات وب را تا زمانی که مخزن پر شود، ادامه می دهند. البته این الگوریتم در بسیاری از موتورهای جستجو که دارای سطوح متفاوتی از سوگیری های موضوعی و پوششی هستند تغییر کرده است مثلاً خزنده یک موتور ممکن است فقط از سایت های مربوط به حـوزه های خـاص مثلاً سـایت های دولتی بازدید کند.
هر بار که موتور جستجو حداقل یک چرخه مرور کامل را به پایان رسانده باشد، واحد کنترل خزنده ممکن است توسط چندین نمایه که در طول مرور اخیر پدید آمده اند، آگاه شود. واحد کنترل ممکن است مثلاً از نمودار مربوط به لینک های مرور قبلی برای تصمیم گرفتن در مورد این که کدام لینک ها باید توسط خزنده بررسی شود و کدام یک نه، استفاده کند. واحد کنترل همچنین ممکن است از بازخورد کاربران برای هدایت فرایند خزش استفاده کند(ارتباط بین رابط سؤال موتور جستجو و واحد کنترل در شکل۲-۴) [۱ و ۷].
واحد نمایه ساز[۴۰] کلمات ضروری را از هر صفحه استخراج و آدرس محلی که هر کلمه در آن جا قرار داشته است را ثبت می کند. حاصل کار جدول بسیار بزرگی است که شامل آدرس صفحاتی است که کلمات گردآوری شده در آن جا وجود دارند. اندازه وسیع وب و تغییرات سریع آن مشکلاتی را در ایجاد نمایه پدید می آورد. علاوه بر این چالش های کمی، وب لزوم ایجاد برخی نمایه های خاص را برای موتورهای جستجو ایجاب می کند مثلاً واحد نمایه ساز ممکن است یک نمایه ساختاری بوجود آورد که نشان دهنده لینک های بین صفحات است[۷ و ۴۷].
برخی نمایه ها برای مجموعه متون سنتی مناسب نیستند بنابراین واحد آنالیز مجموعه[۴۱] مسئول به وجود آوردن انواع دیگری از نمایه هاست. نمایه چند کاربره به وسیله واحد آنالیز مجموعه بوجود آمده است. این نمایه ممکن است دسترسی به صفحاتی که دارای بخش معینی هستند، صفحاتی که دارای اهمیت خاصی هستند و یا صفحاتی که شامل تعدادی عکس هستند را فراهم آورد.
واحد آنالیز مجموعه ممکن است از نمایه های متنی و ساختاری در به وجود آوردن نمایه های چند کاربره استفاده کند. در طول چرخه مرور و نمایه سازی، موتور جستجو باید صفحاتی که از وب بازیابی شده اند را ذخیره سازد. ذخیره سازی در مخزن انجام می شود. موتورهای جستجو گاهی اوقات از مجموعه صفحاتی که از آنها مرور به عمل آمده حتی بعد از ساختن نمایه هم نگهداری می کنند. این مجموعه به موتورها اجازه می دهد تا به سرعت صفحه نمایش را نشان دهند، بعلاوه امکاناتی را برای جستجوی ساده فراهـم می آورد. رابط سؤال موتور جستجو[۴۲] مسئول دریافت و اجرای درخواست کاربران است. این بخش به شدت به نمایه ها متکی است و گاهی اوقات هم به مخزن. به دلیل اندازه وب و این که کاربران فقط یک یا دو کلید واژه را وارد می کنند، تعداد نتایج حاصـله معـمولاً زیاد اسـت، بنابرایـن واحـد رتبه بنـدی وظیفه دسته بندی نتایج به گونه ای که مرتبط ترین نتایج در ابتدای صفحه نمایش بیایند، را برعهده دارد[۷].
۲-۴ اجزای معماری موتورهای جستجو
- عنکبوت[۴۳]
- خزنده
- انباره صفحات
- ماژول شاخص دهی
- ماژول تحلیل مجموعه
- شاخص سودمندی[۴۴]
- ماژول رتبه بندی[۴۵]
- موتور پرس و جو [۴۶]
عنکبوت یا روبوت[۴۷]، نرم افـزاری است که کار جمـع آوری اطلاعات مورد نیاز یک مـوتور جستجـوگر را بر عهده دارد. عنکبوت به صفحات مختلف سر می زند، محتوای آن ها را می خواند، اطلاعـات مـورد نیاز را جمع آوری می کند و آن را در اختیار سایر بخش های موتور جستجوگر قرار می دهد[۴۷].
کار یک عنکبوت، بسیار شـبیه کار کاربران وب است. همانطـور که کاربران، صفحـات مختلف را بازدیـد می کنند، عنکبوت هم درست این کار را انجام می دهد با این تفاوت که عنکبوت کدهای [۴۸]HTML صفحات را می بیند اما کاربران نتیجه حاصل از کنار هم قرار گرفتن این کدها را.
در شکل ۲-۵ کدهایی را که عنکبوت مشاهده می کند نمایش داده شده است:
شکل۲-۵ کدهای HTML سازنده یک صفحه وب
عنکبوت، به هنگام مشاهده صفحات، از خود بر روی سرورها رد پا برجای می گذارد. اگر اجازه دسترسی به آمـار دیـد و بازدیـدهای صـورت گرفته از یک سایـت و اتفاقات انجام شـده در آن را داشـته باشیـم، می توانیـم مشخص کنیم که عنکبوت کدام یک از موتورهای جستجوگر صفحات سایت را مورد بازدید قرار داده اند.
عنکبوت ها کاربردهای دیگری نیز دارند، به عـنوان مثال عـده ای از آنها به سایـت های مخـتلف مراجعـه می کنند و فقط به بررسی فعال بودن لینـک های آن ها می پـردازند و یا به دنبـال آدرس پسـت الکترونیکی می گردنـد. در موتورهـای جستجوی امروزی، اغلب عنکبـوت را با خـزنده ادغام نمـوده اند [۴۰ و ۴۶].
خزنده، نرم افزاری است که به عنوان یک فرمانده برای عنکبوت عمل می کند و مشخص می کند که عنکبوت کدام صفحات را مورد بازدید قرار دهد. در واقع خـزنده تصمیـم می گیـرد که کـدام یک از لینـک های صفـحه ای که عنکبوت در حال حاضر در آن قرار دارد، دنبال شود. ممکن است همه آن ها را دنبال کند، بعضی ها را دنبال کند و یا هیچ کدام را دنبال نکند[۲].
خزنده، ممکـن است قبلاً برنامه ریزی شـده باشد که آدرس های خاصـی را طبـق برنامه، در اختیار عنکبوت قرار دهد تا از آن ها دیدن کند. دنبال کردن لینک های یک صفحه به این بستگـی دارد که موتور جستجـوگر چه حجمی از اطلاعات یک سایت را می تواند در پایگاه داده اش ذخیره کند و همچنین ممکن است اجازه دسترسی به بعضی از صفحات به موتورهای جستجوگر داده نشده باشد.