شاید تاکنون میلیونها کاربری که از موتورهای جستجو استفاده میکنند، تا امروز به مفهوم و نحوهی عملکرد آن فکر نکرده باشند.
موتور جستجو در واقع ابزاری است که بعد از دریافت ورودی شامل کلمات، عبارات و...، آنها را از اسناد و اطلاعات موجود در بانک اطلاعاتی جستجو کرده و نتیجههای به دست آمده را براساس اولویتهای از پیش تعیین شده به شما نشان میدهد.
به طور کلی موتورهای جستجو براساس کل کلمه یا عبارت وارد شده یا براساس جزئی از آن به جستجو پرداخته و موارد دقیق یا مشابه پیدا شده را فهرست میکنند.
اما موتور جستجو از چه بخشهایی تشکیل شده است؟
- خزشگر Crawler
- نمایه ساز Indexer
- جستجوگر و واحد رتبهبندی Ranking Module
خزشگر
رباتی که به صورت نرمافزاری پیادهسازی میشود البته برای اینکه عملکرد خوبی داشته باشد باید از هوشمندی بالایی برخوردار باشد. وظیفه اصلی این نرمافزار بسیار پیشرفته و هوشمند ورود به فضای اینترنت از یک یا چند نقطه شروع Seed و جمعآوری دادههای موجود در این فضا هست که البته این دادهها بیشتر صفحات وب است.
نمایهساز
نرمافزاری که میتوان آن را نزدیک و مرتبط به سیستم ذخیره و بازیابی داده سیستمعامل دانست. هدف اصلی این نرمافزار ذخیره دادههای با حجم بالا به نحوی که بعد از ذخیره قابلیت جستجو و بازیابی سریع را داشته باشد. در واقع خروجی بخش خزشگر به عنوان ورودی به نمایهساز تحویل میشود تا پردازشهای مورد نیاز روی آن ها انجام شود و به شکل مورد نظر ذخیره شود.
جستجوگر و واحد رتبهبندی
رتبهبندی و نمایش اطلاعات یکی از مهمترین بخشهای هر موتور جستجو هست، در این مرحله سیستم به نتایج مرتبط به درخواست کاربر نزدیک شده است اما اینکه ترتیب نمایش این نتایج چگونه باشد به عملکرد صحیح این بخش بستگی دارد. حال ارتباط نتایج با درخواست کاربر چگونه سنجیده میشود خود فرآیند بسیار پیچیده و چند وجهی است.
معماری جستجوگر پارسیجو
مواردی که در سطور بالا به عنوان مفاهیم اولیه در جستجو عنوان شد، برای عملیاتی شدن نیاز به دانش، تجربه، تخصص و سختافزارهای مورد نیاز داد. در این بخش هم نگاهی به چیدمان سختافزاری جستجوگر پارسیجو خواهیم داشت.
خزشگر پارسیجو (ایساتیس)
در بخش خزشگر پارسیجو رباتی با قابلیت خزش انبوهی از اسنتپ به صورت متوالی در حال فعالیت است که به صورت هوشمندانهای اسناد مهم را تشخیص و آنها را تفکیک میکند. در بخش خزش چالشهایی وجود دارد که مهمترین آنها عبارتند از :
- تشخیص یکتا بودن پیوندها
- زمان بندی درست جهت به روز بودن اطلاعات
- رعایت تعادل
خزشگر ایساتیس همزمان بر روی تعدادی سرور در حال دریافت محتوای وب هست و یک سرور مدیریتی کنترل این سرورها بر عهد دارد؛ بدین معنی که خزش در پارسی جو به صورت توزیع شده انجام میشود.
نمایهساز پارسیجو
اسناد خزش شده بر روی تعداد زیادی سرور ذخیره میشود که به آن ها کلاستر اطلاق میشود. این ذخیرهسازی پیش مقدمهای است برای انجام عمل نمایهسازی. اسناد خزش شده به نحوی که بهترین و سریعترین پاسخ گویی به درخواست کاربر انجام گیرد به دیگر سرورها انتقال پیدا میکند که به این سرورها جستجوگر گفته می شود. عملیاتهای نمایه سازی میتواند از چند ثانیه تا چند ساعت در حال انجام باشد.
جستجو گر و واحد رتبهبندی در پارسی جو
در این مرحله فرآیندهای بسیار متفاوت و زیادی بر روی درخواستهای کاربران انجام میشود تا در نهایت بهترین نتایج به کاربران نمایش داده شود. به دلیل بالا بودن تعداد در خواستها، سیستمی در پارسیجو برای جهت دهی و تقسیم بار کاری در درگاه سیستم تعبیه شده است. این تقسیم خود در ۲ سطح انجام میشود؛ ابتدا سرورهایی به عنوان متعادل کننده یا بالانسر تعبیه شده و بعد از آن درخواست وارد لایه دوم تقسیم بار میشود که در آن سرورهایی که اربیتر نامیده میشود وظیفه خود را انجام میدهند. در طی این فرآیند تقسیم بار، کارهای دیگری از جمله تشخیص حملات بدافزارها و موارد امنیتی هم بررسی میگردد.
معماری توزیع شده پارسیجو
تقریباً تمام سیستمهای طراحی شده در پارسیجو به صورت توزیع شده عمل میکنند. توزیع شده به این معنی که یک سرور مدیریتی وجود دارد که سایر سرورهای همکار را کنترل میکند. به دلیل حجم بالای داده-های ورودی به سیستم، چند سرور محدود توانایی انجام سریع وظایف پردازشی را ندارند بنابراین با در نظر گرفتن این بار زیاد کاری و نیاز به پاسخگویی سریع و دقیق، تنها طراحی که میتواند پاسخگو باشد طراحی سیستم به صورت توزیع شده است. باید توجه داشت همگام سازی و بهروزآوری تمام این سیستم ها کار مهم و دشواری است که نیاز به دانش علمی و فنی بالایی دارد.