چگونه موتورهای جستجو در اینترنت کار می کنند
آنها بر اساس کلمات مهم اینترنت را جستجو می کنند یا قطعات اینترنتی را انتخاب می کنند.
آنها فهرستی از کلمات که پیدا می کنند را نگه می دارند و جایی که آنها را پیدا می کنند.
آنها به کاربران اجازه می دهند تا کلمات یا ترکیبی از کلمات موجود در آن فهرست را جستجو کنند.
موتورهای جستجوگر پیشین یک سند چند صد هزار صفحه و اسناد را در اختیار داشتند و هر روز یک یا دو هزار مورد را دریافت کردند. امروزه یک موتور جستجو برتر، صدها میلیون صفحه را فهرست می کند و روزانه ده ها میلیون پرس و جو پاسخ می دهد. در این مقاله به شما خواهیم گفت که چگونه این وظایف مهم انجام می شود و چگونه موتورهای جستجو اینترنتی قطعات را به هم متصل می کنند تا شما بتوانید اطلاعات مورد نیاز خود را در وب پیدا کنید.
وب خزنده
هنگامی که اکثر مردم در مورد موتورهای جستجو در اینترنت صحبت می کنند، آنها واقعا به معنای موتورهای جستجوی جهانی وب هستند. قبل از اینکه وب تبدیل به بخش قابل توجهی از اینترنت شود، موتورهای جستجو در حال حاضر برای کمک به مردم در پیدا کردن اطلاعات در شبکه وجود دارد. برنامه هایی با نام هایی مانند “gopher” و “Archie” شاخص های فایل های ذخیره شده در سرورهای متصل به اینترنت را حفظ کردند و به طور چشمگیری میزان زمان لازم برای یافتن برنامه ها و اسناد را کاهش دادند. در اواخر دهه ۱۹۸۰، دریافت ارزش جدی از اینترنت به معنای دانستن اینکه چگونه از gopher، archie، ورونیکا و بقیه استفاده کنید.
امروزه اکثر کاربران اینترنت جستجوی خود را به وب محدود می کنند، بنابراین ما این مقاله را به موتورهای جستجو که محتوای محتویات صفحات وب را متمرکز می کنند، محدود می کنیم.
قبل از اینکه یک موتور جستجو بتواند به شما بگوید کجا یک فایل یا سند است، باید آن را پیدا کنید. برای پیدا کردن اطلاعات در مورد صدها میلیون صفحه وب که وجود دارد، یک موتور جستجو، روبات های نرم افزاری خاص، به نام عنکبوت، برای ساخت لیستی از کلمات موجود در وب سایت ها استفاده می کنند. هنگامی که یک عنکبوت لیست های خود را ایجاد می کند، این فرآیند به نام خزیدن وب شناخته می شود. (بعضی از معایب برای خواندن بخشی از اینترنت وب جهان شمول وجود دارد – یک مجموعه بزرگ از نامهای arachnid-centric برای ابزار یکی از آنهاست.) برای ساختن و نگهداری یک فهرست مفید از کلمات، عنکبوت موتور جستجوگر به صفحات زیادی نگاه کنید.
هر عنکبوت چگونه سفر خود را بر روی وب آغاز می کند؟ نقاط شروع معمول لیستی از سرورهای بسیار مورد استفاده و صفحات بسیار محبوب هستند. عنکبوت با یک سایت محبوب آغاز خواهد شد، فهرست کلمات را در صفحات خود و تحت هر پیوند موجود در سایت دنبال خواهد کرد. به این ترتیب، سیستم spidering به سرعت شروع به سفر می کند، گسترش در بخش های به طور گسترده استفاده از وب.
گوگل به عنوان یک موتور جستجوی دانشگاهی آغاز شد. در مقاله ای که سیستم ایجاد شده را شرح می دهد، سرگی برین و لارنس صفحه نمونه ای از این که عنکبوت چگونه می تواند کار کند سریعا نشان می دهد. آنها سیستم اولیه خود را برای استفاده از چند عنکبوت، معمولا سه در یک زمان ساخته شده است. هر عنکبوت می تواند حدود ۳۰۰ اتصال به صفحات وب را در یک زمان باز کند. در اوج عملکرد خود، با استفاده از چهار عنکبوت، سیستم آنها می تواند بیش از ۱۰۰ صفحه در ثانیه خزیدن، تولید حدود ۶۰۰ کیلوبایت اطلاعات در هر ثانیه.
نگه داشتن همه چیز در حال اجرا به سرعت به معنی ایجاد یک سیستم برای ارسال اطلاعات لازم به عنکبوت. سیستم اولیه Google یک سرور اختصاصی برای ارائه URL به عنکبوت داشت. به جای اینکه بسته به یک ارائه دهنده خدمات اینترنت برای سرور نام دامنه (DNS) که یک نام سرور را به یک آدرس ترجمه می کند، Google دارای DNS خاص خودش بود، تا حداقل تاخیر را حفظ کند.
زمانی که عنکبوت Google به یک صفحه HTML نگاه کرد، دو مورد را ذکر کرد:
کلمات درون صفحه از کجا پیدا شد
واژه هایی که در عنوان، زیرنویس ها، متا تگ ها و سایر موقعیت های اهمیت نسبی رخ داده است، در زمان جستجوی کاربر پس از آن مورد توجه خاص قرار گرفت. عنکبوت Google برای نشان دادن هر کلمه مهم در یک صفحه ساخته شده است، و مقالههای “a”، “a” و “the.” را حذف نمیکند. عنکبوت های دیگر رویکردهای مختلفی دارند.
این روش های مختلف معمولا تلاش می کنند که عنکبوت سریع تر عمل کند، به کاربران اجازه می دهد تا کارایی بیشتری انجام دهند یا هر دو. به عنوان مثال، برخی از عنکبوت ها کلمات کلیدی در عنوان، زیر عنوان ها و لینک ها را همراه با ۱۰۰ کلمه که اغلب مورد استفاده در صفحه و هر کلمه در ۲۰ خط اول متن هستند، پیگیری می کنند. گفته می شود Lycos از این رویکرد به استفاده از Spider Web استفاده می کند.
سیستم های دیگر مانند AltaVista در مسیر دیگری قرار می گیرند، هر کلمه ای را بر روی یک صفحه فهرست بندی می کنند، از جمله “a”، “a”، “،” و “دیگر” کلمات ناچیز. فشار برای تکمیل در این رویکرد، با سایر سیستم ها همخوانی دارد با توجه به بخش غایی از صفحه وب، متا تگ ها. درباره برچسب های متا در صفحه بعدی بیشتر بدانید.
برچسب های متا
تگ های متا به صاحب یک صفحه اجازه می دهد تا کلمات و مفاهیم کلیدی را که تحت آن صفحه نمایش داده می شود، مشخص کند. این می تواند مفید، به ویژه در مواردی که در آن کلمات در صفحه معانی دو یا سه برابر دارند – تگ های متا می توانید موتور جستجو را در انتخاب کدام یک از معانی مختلفی ممکن است برای این کلمات صحیح هدایت کند. وجود دارد، با این حال، خطر در بیش از اتکا به متا تگ ها، به دلیل مالک صفحه بی دقتی و یا بی پروا ممکن متا تگ ها که مناسب موضوعات بسیار محبوب است اما هیچ ربطی به با محتویات واقعی از صفحه اضافه کنید. برای محافظت در برابر این، عنکبوت خواهد متا تگ ها با محتوای صفحه ارتباط، رد تگ های متا که از کلمات در صفحه، مطابقت ندارد.
همه این فرض می کنند که صاحب یک صفحه واقعا می خواهد که آن را در نتایج فعالیت های موتور جستجوی خود قرار دهد. چندین بار صاحب صفحه نمی خواهد آن را در یک موتور جستجوی بزرگ نمایش دهد یا فعالیت عنکبوت را به صفحه دسترسی ندارد. به عنوان مثال، یک بازی که صفحات جدید فعال را ایجاد می کند، هر بار که قسمت های صفحه نمایش داده می شوند یا پیوندهای جدید دنبال می شوند، در نظر بگیرید. اگر یک عنکبوت وب دسترسی یکی از این صفحات، و شروع زیر همه لینک ها برای صفحات جدید، بازی می تواند فعالیت برای یک بازیکن انسان با سرعت بالا و چرخش اشتباه خارج از کنترل. برای جلوگیری از چنین شرایطی، پروتکل رد کردن ربات توسعه یافت. این پروتکل، به اجرا در بخش متا تگ در ابتدای یک صفحه وب، می گوید یک عنکبوت از این صفحه خارج به تنهایی – به نه شاخص کلمات بر روی صفحه و نه سعی کنید به دنبال لینک آن است.
ساختن شاخص
هنگامی که عنکبوت ها وظیفه پیدا کردن اطلاعات در صفحات وب را به پایان رسانده اند (و باید توجه داشته باشیم که این یک کار است که هرگز در واقع تکمیل نشده است – طبیعت دائما در حال تغییر وب به معنی آن است که عنکبوت همیشه خزنده می شود)، موتور جستجو باید اطلاعات را به گونه ای ذخیره کنید که مفید باشد. دو جزء کلیدی در ساخت داده های جمع آوری شده در دسترس کاربران وجود دارد:
اطلاعات ذخیره شده با داده ها
روشی که اطلاعات آن را نمایش می دهد
در ساده ترین حالت، یک موتور جستجو فقط می تواند کلمه و URL را که در آن یافت شد ذخیره کند. در واقع، این باعث می شود که یک موتور از استفاده محدود استفاده شود، زیرا هیچ راهی برای گفتن این که آیا کلمه در یک صفحه مهم یا بی اهمیت مورد استفاده قرار گرفته است یا خیر، یا یک بار یا چند بار استفاده شده است یا صفحه شامل پیوندهایی به صفحات دیگر حاوی کلمه است. به عبارت دیگر، هیچ راهی برای ساختن فهرست رتبه بندی وجود ندارد که تلاش کند تا صفحات مفید را در بالای لیست نتایج جستجو نمایش دهد.
برای ایجاد نتایج مفیدتر، اکثر موتورهای جستجو بیشتر از کلمه و URL ذخیره می کنند. یک موتور ممکن است تعداد دفعاتی که کلمه در یک صفحه ظاهر می شود ذخیره شود. موتور ممکن است برای هر ورودی یک وزن تعیین کند، با افزایش مقدار اختصاص یافته به کلمات به عنوان آنها در نزدیکی بالای سند، در زیر عنوان ها، در لینک ها، در برچسب های متا یا در عنوان صفحه ظاهر می شود. هر موتور تجاری تجاری دارای یک فرمول متفاوت برای تعیین وزن برای کلمات در شاخص آن است. این یکی از دلایلی است که جستجو برای کلمه ی مشابه در موتورهای جستجو متفاوت، لیست های مختلفی را با صفحات ارائه شده در سفارش های مختلف تولید می کند.
صرف نظر از ترکیب دقیق قطعات اضافی اطلاعات ذخیره شده توسط یک موتور جستجو، داده ها برای صرفه جویی در فضای ذخیره سازی رمزگذاری می شوند. برای مثال، مقاله اصلی گوگل با استفاده از ۲ بایت از هر بیت ۸ بیتی برای ذخیره اطلاعات در مورد وزن – چه کلمه ای بزرگ شده، اندازه قلم، موقعیت و سایر اطلاعات برای کمک به رتبه بندی ضربه استفاده می شود. هر عامل می تواند ۲ یا ۳ بیت را در گروه ۲ بایت (۸ بیت = ۱ بایت) بگیرد. در نتیجه، مقدار زیادی از اطلاعات را می توان در فرم بسیار جمع و جور ذخیره کرد. پس از اطلاعات فشرده شده، آماده نمایه سازی است.
یک شاخص تنها هدف دارد: این اجازه می دهد تا اطلاعات به سرعت در دسترس قرار گیرد. چندین راه برای ایجاد یک شاخص وجود دارد، اما یکی از موثرترین راه ایجاد یک جدول هش است. در هش کردن یک فرمول برای اضافه کردن یک مقدار عددی به هر کلمه اعمال می شود. فرمول طراحی شده است به طور مساوی توزیع ورودی در یک تعداد از تقسیمات از پیش تعیین شده است. این توزیع عددی از توزیع کلمات در حروف الفبا متفاوت است و این کلید برای اثربخشی جدول هش است.
به زبان انگلیسی، برخی از حروف وجود دارد که کلمات زیادی را شروع می کنند، در حالی که دیگران شروع به کم شدن می کنند. به عنوان مثال، می توانید بخش “M” فرهنگ لغت را بسیار ضخیم تر از بخش “X” پیدا کنید. این نابرابری بدین معنی است که پیدا کردن یک کلمه با یک حرف بسیار «محبوب» می تواند خیلی طولانی تر از پیدا کردن یک کلمه باشد که با یک محبوبیت کمتری آغاز می شود. هاشینگ تفاوت را از بین می برد و میانگین زمان لازم برای یافتن یک ورودی را کاهش می دهد. همچنین شاخص را از ورود واقعی جدا می کند. جدول هش شامل شماره هشدار همراه با اشاره گر به داده های واقعی است که می تواند هر کدام را مرتب کند تا بتواند آن را به صورت موثر ذخیره کند. ترکیبی از نمایه سازی کارآمد و ذخیره سازی موثر باعث می شود که نتایج به سرعت حاصل شود، حتی زمانی که کاربر یک جستجوی پیچیده ایجاد می کند.
ساخت یک جستجوی
جستجو از طریق یک فهرست شامل ساخت یک کاربر پرس و جو و ارسال آن از طریق موتور جستجو است. پرس و جو می تواند بسیار ساده باشد، حداقل یک کلمه. ساخت یک پرس و جو پیچیده تر نیاز به استفاده از اپراتورهای بولین که به شما اجازه می دهد اصطلاحات جستجو را گسترش دهید و گسترش دهید.
اپراتورهای بولین اغلب دیده می شوند عبارتند از:
و – تمام اصطلاحات همراه با “AND” باید در صفحات یا اسناد ظاهر شوند. بعضی از موتورهای جستجو برای کلمه “AND” عملگر “+” را جایگزین می کنند.
OR – حداقل یکی از اصطلاحات مرتبط با “OR” باید در صفحات یا اسناد ظاهر شود.
NOT – اصطلاحات و اصطلاحات زیر “NOT” نباید در صفحات یا اسناد ظاهر شود. بعضی از موتورهای جستجو، اپراتور “-” را برای کلمه “NOT” جایگزین می کند.
به دنبال – یکی از اصطلاحات باید به طور مستقیم توسط یکی دیگر از دنبال شود.
NEAR – یکی از اصطلاحات باید در تعداد مشخصی از کلمات دیگر باشد.
علامت نقل قول – کلمات بین علامت نقل قول به عنوان یک عبارات پردازش می شوند و این عبارت باید در سند یا فایل یافت شود.
جستجوی آینده
جستجوهای تعریف شده توسط اپراتورهای بولین جستجوهای معنادار هستند – موتور دقیقا همانطور که وارد می شوند کلمات یا عبارات را می بیند. این می تواند یک مشکل زمانی که کلمات وارد شده دارای معانی متعدد هستند. به عنوان مثال، “تخت” می تواند مکانی باشد برای خواب، جایی که گل ها کاشته می شوند، فضای ذخیره سازی یک کامیون یا مکان ای که ماهی ها تخم خود را می چیند. اگر فقط یکی از این معانی را علاقه مندید، ممکن است بخواهید صفحه هایی را مشاهده کنید که شامل همه دیگران است. شما می توانید یک جستجوی واقعی را انجام دهید که تلاش می کند معانی ناخواسته را از بین ببرد، اما اگر موتور جستجو خود بتواند کمک کند، خوب است.
یکی از زمینه های تحقیق موتور جستجو، جستجوی مبتنی بر مفهوم است. برخی از این تحقیقات شامل استفاده از تجزیه و تحلیل آماری در صفحات حاوی کلمات یا عباراتی که جستجو می کنید برای پیدا کردن صفحات دیگری که ممکن است مورد علاقه شما باشد. بدیهی است، اطلاعاتی که در مورد هر یک از صفحات ذخیره شده اند برای موتور جستجوی مبتنی بر مفهوم بیشتر است و هر پردازش بیشتر برای هر جستجو مورد نیاز است. با این حال، بسیاری از گروه ها در حال تلاش برای بهبود نتایج و عملکرد این نوع موتور جستجو هستند. دیگران به یک منطقه دیگر از تحقیقات نقل مکان کرده اند که عبارتهای طبیعی زبان هستند.
ایده درمورد نمایش های طبیعی زبان این است که شما می توانید یک سوال را به همان شیوه ای که شما از آن بخواهید به فردی که در کنار شما قرار دارد بپرسید – بدون نیاز به پیگیری اپراتورهای بولی یا سازه های پرس و جو پیچیده. امروزه سایت پرطرفدار پرطرفدار زبان طبیعی، AskJeeves.com است، که query را برای کلمات کلیدی تجزیه می کند و سپس به فهرست سایت های ساخته شده آن اعمال می شود. این فقط با درخواستهای ساده کار می کند اما رقابت برای توسعه یک موتور پرس و جو زبان طبیعی است که می تواند پرس و جو از پیچیدگی های بزرگ را پذیرفت.