موتورهای جستجو
خبر خوب در مورد اینترنت و مهم ترین جزء آن، شبکه جهانی وب (World Wide Web) این است که میلیون ها صفحه در آن وجود دارد و آماده اند تا اطلاعات را در زمینه های مختلف ارائه دهند. خبر بد در مورد اینترنت این است که میلیون ها صفحه در آن وجود دارد، اما گاهی برای پیدا کردن محتوای مناسب دچار سردرگمی می شویم. زمانی که می خواهید در مورد یک موضوع به خصوص اطلاعات کسب کنید، از کجا می فهمید که به کدام صفحات باید مراجعه کنید؟ اگر مانند اکثر مردم باشید، احتمالاً از یک موتور جستجوی اینترنتی کمک می گیرید.
موتورهای جستجو سایت های به خصوصی در فضای اینترنت هستند که به مردم کمک می کنند، محتوای مورد نظر خود را راحت تر پیدا کند. تفاوت هایی در روش عملکرد موتورهای جستجو وجود دارد، اما همه آنها از سه روش کلی پیروی می کنند:
- آنها فضای اینترنت، یا بخش هایی از آن را برای یافتن کلمات کلیدی جستجو می کنند.
- آنها فهرستی از کلمات را نگهداری می کنند و می دانند که باید آنها را در کجا بیابند.
- آنها به کاربران اجازه می دهند که کلمات یا مجموعه ای از کلمات را در آن فهرست جستجو کنند.
در گذشته، موتورهای جستجو فهرستی از هزاران صفحه و سند را در درون خود نگه می داشتند و شاید روزی هزار یا دو هزار جستجو دریافت می کردند. امروزه موتورهای جستجو پرکاربرد، میلیون ها صفحه را پوشش می دهند و روزانه ده ها میلیون جستجو دریافت می کنند. امروز می خواهیم ببینیم موتورهای جستجوی اینترنتی چگونه تکه های مختلف یک پازل را می چینند تا یک نتیجه مطلوب را به کاربر ارائه دهند.
خزیدن در وب (Web Crawling)
زمانی که بیشتر مردم در مورد موتورهای جستجو صحبت می کنند، منظورشان موتورهای جستجو بر پایه World Wide Web است. پیش از این که وب (Web) به مهمترین بخش اینترنت تبدیل شود، موتورهای جستجویی وجود داشتند که اطلاعات را بر روی نت پیدا می کردند. برنامه هایی مانند gopher و Archie، فهرست فایل ها را بر روی سرورهایی که به اینترنت متصل بودند، نگه می داشتند و به این شکل، زمان رسیدن به نتایج را کاهش می دادند. در انتهای دهه 1980، استفاده بهینه از اینترنت مستلزم استفاده درست از برنامه های gopher، Archie، Veronica و غیره بود.
امروزه بیشتر کاربران اینترنت، جستجوهای خود را به وب محدود می کنند. بنابراین این مقاله را به موتورهای جستجو که روی محتویات صفحات وب متمرکز هستند، محدود خواهیم کرد.
پیش از آن که یک موتور جستجو به شما بگوید یک فایل یا سند کجاست، اول باید آن را پیدا کند. برای پیدا کردن اطلاعات در صدها میلیون صفحه وب، یک موتور جستجو از ربات های نرم افزاری به نام اسپایدر (عنکبوت) استفاده می کند تا کلمات را در وب سایت ها پیدا کند. زمانی که یک اسپایدر لیست خود را می سازد، به این فرایند Web crawling گفته می شود. برای ساختن یک لیست مفید از کلمات، اسپایدرهای یک موتور جستجو باید در صفحات بسیار زیاد به جستجو بپردازند.
اما یک اسپایدر چگونه سفر خود در فضای وب را شروع می کند؟ معمولاً نقطه شروع، لیستی از سرورهای شلوغ و صفحات معروف است. اسپایدر از یک سایت معروف کار خود را شروع می کند، کلمبات در صفحه آن سایت را لیست می کند و به سراغ لینک های داخل سایت می رود. به این شکل، سیستم اسپایدر شروع به سفر در سایت های مختلف می کند و به سرعت به سرتاسر وب، سر می زند.
گوگل اولین موتوری بود که جستجو به صورت آکادمیک را آغاز کرد. در برگه ای که روش کار این سیستم را نشان می دهد، موسسان این شرکت نمونه ای از روند کار این موتور جستجو را شرح داده اند. آنها سیستم اولیه خود را بر اساس چندین اسپایدر ساختند. معمولاً 3 اسپایدر در هر بار. هر اسپایدر می تواند همزمان با 300 صفحه وب ارتباط برقرار کند. در بهترین حالت، 4 اسپایدر می توانند 100 صفحه را در هر ثانیه جستجو کنند، که 600 کیلوبایت اطلاعات در هر ثانیه را شامل می شود.
برای اینکه همه چیز در بالاترین سرعت ممکن انجام شود، باید سیستمی باشد که اسپایدرها را با اطلاعات تغذیه کند. سیستم اولیه گوگل به این صورت بود که یک سرور اختصاصی داشت تا URL ها را به اسپایدرها برساند. گوگل به جای این که از DNS سرویس دهندگان ISP استفاده کند، از DNS اختصاصی خود استفاده می کرد تا تأخیر ها را به حداقل برساند.
زمانی که اسپایدر گوگل، به یک HTML مراجعه می کرد، دو چیز را در نظر می گرفت:
- کلمات داخل صفحه
- مکان قرار گیری کلمات
کلماتی که در عنوان و زیر عنوان یافت می شد، بیشتر مورد توجه قرار می گرفت. اسپایدر گوگل کلمات کوچک مانند “از”، “را”، “به” را نادیده می گرفت. موتورهای جستجوی مختلف، از روش های مختلفی استفاده می کنند تا اسپایدرها سریع تر عمل کنند و کاربران را زودتر به نتیجه برسانند.
برای مثال، برخی اسپایدر ها به دنبال کلمه در عنوان، زیر عنوان، لینک ها و 100 تا از کلمات پرکاربرد در داخل متن می گردند. موتور جستجوی Lycos از چنین روشی استفاده می کند. اما برخی سیستم های دیگر مانند AltaVista همه کلمات را لیست می کنند، حتی کلمات بسیار کوچک.
متا تگ ها (Meta Tags)
متا تگ ها به مالک صفحه اجازه می دهد تا کلمات کلیدی معینی را در زیر صفحه قرار دهد. این می تواند بسیار مفید باشد. به خصوص در زمانی که ممکن است یک کلمه در صفحه، بیش از یک معنی داشته باشد. متا تگ ها می توانند به موتورهای جستجو کمک کنند تا کلمه درست را در بین آن ها پیدا کند. البته متا تگ ها می توانند گمراه کننده نیز باشند. مثلاً صاحب یک وب سایت ضعیف می تواند از متا تگ های معروف استفاده کند که هیچ ارتباطی به محتوای ضعیف این سایت ندارد. برای حل این مشکل، اسپایدرها محتوای سایت را با متا تگ ها مطابقت می دهند.
ساختن ایندکس (Index)
زمانی که اسپایدرها وظیفه پیدا کردن اطلاعات در صفحات وب را به اتمام رساندند، موتور جستجو باید آن را طوری ذخیره کند که قابل استفاده باشد. برای اینکه اطلاعات برای کاربر، قابل استفاده باشد، دو جزء کلیدی وجود دارد:
- اطلاعاتی که داخل داده های به دست آمده وجود دارد
- روش ایندکس کردن یا لیست کردن اطلاعات
در ساده ترین حالت، یک موتور جستجو تنها آن کلمه و URL را ذخیره می کند. در حقیقت، این کار قابلیت های موتورهای جستجو را محدود می کند. چرا که نشان نمی دهد آیا این کلمه در این صفحه اهمیت داشته یا بی اهمیت بوده است، آیا تنها یک بار استفاده شده یا بارها مورد استفاده قرار گرفته و اینکه آیا این صفحه دارای لینک های حاوی این کلمه بوده است یا خیر. در واقع راهی برای رتبه بندی صفحات مفید تر وجود ندارد.
برای اینکه نتایج مفید تری به دست آید، اکثر موتورهای جستجو چیزی بیش از کلمه و URL را ذخیره می کنند. یک موتور جستجو ممکن است تعداد دفعات تکرار کلمه در صفحه را نیز در نظر بگیرد و برای هر ورودی، وزن قائل شود. به کلماتی که در عنوان، زیر عنوان، بالای متن، لینک ها و متا تگ ها وجود دارند، به ترتیب اهمیت بیشتری داده می شود. هر موتور جستجو از فرمول به خصوصی برای اهمیت دادن به کلمات استفاده می کند. به همین دلیل است که وقتی کلمه ای را در موتورهای جستجوی مختلف جستجو می کنید، نتایج متفاوتی به دست می آورید.
انجام جستجو
جستجو در ایندکس بر اساس کلمات جستجو شده توسط کاربران انجام می شود. جستجو می تواند بر اساس یک کلمه یا ترکیبی از کلمات باشد که با عملگرهای بولی (Boolean operators) ترکیب می شود:
“و”: همه کلماتی که با “و” ترکیب می شوند باید در آن صفحه وجود داشته باشند. برخی موتورهای جستجو از + برای “و” استفاده می کنند.
“یا”: حداقل یکی از کلماتی که در بینشان “یا” قرار دارد، باید در صفحه باشند.
در پی: یک واژه باید مستقیما در پی واژه دیگری به کار برده شود.
علامت نقل قول: کلمات بین علامت های نقل قول به عنوان یک عبارت مورد استفاده قرار می گیرند و آن عبارت باید در سند یا پرونده پیدا شود.
جستجو در آینده
یکی از زمینه های بررسی در موتور جستجو، جستجوی “مبتنی بر مفهوم” است. بخشی از این جستجو شامل استفاده از تجزیه و تحلیل آماری در صفحات حاوی کلمات یا عباراتی است که شما جستجو می کنید، برای یافتن صفحات دیگری که ممکن است به آنها علاقه مند باشید. بدیهی است که اطلاعات ذخیره شده در مورد هر صفحه، برای یک موتور جستجوی “مبتنی بر مفهوم” بیشتر است و پردازش بسیار بیشتری برای هر جستجو مورد نیاز است. هنوز بسیاری از گروه ها در تلاشند تا هم نتایج و هم عملکرد این نوع موتور جستجو را بهبود بخشند. برخی دیگر به نوع دیگری از جستجو با نام “جستجو بر اساس زبان طبیعی” علاقه مند هستند.
ایده “جستجو بر اساس زبان طبیعی” این است که شما می توانید یک سؤال را به همان روشی که می توانید از یک انسان که در کنار شما نشسته است بپرسید، بدون نیاز به پیگیری اپراتورهای بولی یا ساختارهای جستجوی پیچیده. امروزه محبوب ترین سایت جستجوی زبان طبیعی AskJeeves.com است که جستجو را برای کلمات کلیدی تجزیه می کند و سپس در فهرست سایت های ایجاد شده اعمال می کند. البته این فقط با داده های ساده کار می کند. اما رقابت برای ایجاد موتور “جستجو بر اساس زبان طبیعی” حسابی داغ شده است.