تخفیفات ویژه زمستان ۱۳۹۸ تاپایان: پنجشنبه ۸ اسفند ۱۳۹۸
بزن بریم فروشگاه
مفاهیم موتور جستجو و آموزش ساخت موتور جستجو با PHP

مفاهیم موتور جستجو و آموزش ساخت موتور جستجو با PHP

آموزش ساخت موتور جستجو با php و mysql

 

موتور های جستجو چه هستند و چگونه کار میکنند 

موتورهای جستجوگر امروزه بخش جدا ناپذیر از اینترنت هستند . در این مقاله میخواهیم موتورهای جستجوگر و مفاهیم آنرا بصورت کامل پوشش دهیم . 

موتور های جستجوگر به ابزار بسیار کاربردی در زمینه اینترنت تبدیل شده اند  و این ابزارها برای برنامه نویسان ، توسعه دهندگان ، مدیر شرکت ها ، کسب و کارهای آنلاین و دیگر کاربران اینترنتی بسیار کمک کننده و مفید هستند . 

با استفاده از موتور جستجوگر ما میتوانیم اطلاعاتی درباره ی موضوع خاص را به راحتی بدست بیاوریم . 

ما در این مقاله قصد داریم علاوه بر بررسی تخصصی موتور جستجوگر و مفاهیم آن ، به شما آموزش بدیم چطور موتور جستجوی شخصی خودتان را با PHP و MySQL بسازید ! تعجب نکنید شما هم میتوانید گوگل اولش انقدر قدرتمند نبود طی سالهای درازی اینطوری شده و تبدیل شده به یک سیستم عالی !‌ولی شما هم میتوانید از یه سیستم ساده ی موتور جستجو شروع کنید و آنرا هر روز بهتر از دیروز بکنید . 

البته در این مقاله ما قصد نداریم چیزی به شما یاد بدهیم که جایگزینی برای گوگل یا یاهو بسازید چون طبیعتا این امر فعلا امکان پذیر نیست ولی شما با این آموزش به مفاهیم موتورهای جستجو و طرز عمل آنها مسلط میشوید و یاد میگیرید چطور با PHP یک موتور جستجو بسازید . 

 

موتور جستجو چیست ؟ 

بصورت کلی موتور جستجو یک ابزاری در بستر اینترنت است که به کاربران کمک میکند اطلاعات مختلف را از بین میلیون ها سایت به راحتی پیدا کنند . موتور جستجوهای پرکاربرد در جهان عبارتند از Google, Yahoo!, MSN, Bing , Ask و غیره ...

موتورهای جستجو مثل یک برنامه ی کامپیوتری هستند که در بین اسناد زیادی که دارید بین یک کلمه ی خاصی میگردند و آن اسناد را برای شما طبقه بندی میکنند . 

به هر حال بصورت عامیانه موتور جستجو چیزی است مثل Google , Bing , Yahoo و غیره ...

موتورهای جستجوگر ابزار خودکاری مثل ربات ها و خزنده ها را دارند که به سرتاسر اینترنت میفرستند و آنها وقتی به یک سایتی وارد میشوند تمام آن سایت را تحلیل و بررسی میکنند بعد از جمع آوری اطلاعات وارد لینک های آنها میشوند و بعد از ورود به صفحه ی دیگر یا سایت دیگر دوباره آنرا بررسی میکنند و بعد روی لینک های روی آن صفحه کلیک میکنند و دوباره به مقصد بعدی کوچ میکنند . همینطور کل اینترنت را گشته و اطلاعات را جمع آوری میکنند و به پایگاه های داده موتور انتقال میدهند . 

سپس این اطلاعات جمع بندی و طبقه بندی میشود ،‌ به این کار index کردن سایت ها میگویند . وقتی کاربر کلمه ی گرگ را جستجو میکند موتور جستجو در پایگاه داده خود میگردد و بین سایت هایی که این کلمه را ربات ها و خزنده ها جمع آوری کرده اند براساس رتبه ی آنها لیست میکند و به کاربر نمایش میدهد . 

 

موتور های جستجو چطور کار میکنند ؟‌

هر موتور جستجو یک الگوریتمی برای لیست کردن و نمایش اطلاعات طبقه بندی شده از سایت ها دارد. 

نتیجه ی جستجو در موتور های جستجو گر در یک لیستی به نام SERP که مخفف Search Engine Results Page است نمایش داده میشود . 

معمولا الگوریتم موتور های جستجوگر به دنبال کلمات کلیدی در بخش های مختلف سایت میگردد و آنها را مهم میداند مثلا عبارت هایی که در title صفحه یا درون محتوای یک صفحه یا کلمات کلیدی آن وجود دارد . 

سپس وب سایت ها در موتور جستجو Rank بندی یا رتبه بندی میشود که کدام سایت اول نمایش داده شود و سپس کدام سایت ها یعنی به ترتیب کیفیت و محتوای سایت ها بیشتر توجه میشود و  الگوریتم های موجود در موتورهای جستجوگر تقریبا همگی به کیفیت بالا اهمیت میدهند چون هر سایتی که کیفیت بالاتری داشته باشد بهتر است ابتدا دیده شود .

البته هر موتور جستجوگر الگوریتم خاص خودش را دارد مثلا یک وب سایتی ممکن است در گوگل در رتبه ی 1 باشد ولی در موتور جستجوی یاهو در رتبه ی 10 باشد و این بستگی دارد به الگوریتمی که پشت آن موتور است . 

الگوریتم های استفاده شده در موتور های جستجوگر تقریبا در حالت مخفی و سرّی  و دائما هم در حال بروزرسانی و بهبود هستند بنابراین صاحبان وب سایت ها باید مرتبا روی سئو سایت خود کار کنند تا الگوریتم های جدید سایت ها را بهتر بشناسد . 

اگر راز الگوریتم موتور جستجو فاش شود شرکت ها سعی میکنند آنرا دور بزنند و با ایجاد رتبه ی جعلی به جاهای بالاتری بروند که این باعث میشود موتور جستجو نتایج خوبی بدست نیاورد . گاهی نحوه ی کار کردن الگوریتم ها کشف میشود و اینجاست که خیلی ها سعی میکنند تقلب کنند و دقیقا بعد از این اتفاق توسعه دهندگان آن موتور جستجو الگوریتم را بروزرسانی میکنند و یک برچسب spam به آن سایت های متقلب میزنند و رتبه ی آنها به شدت کاهش پیدا میکند . 

موتورهای جستجو گر به سورس یک وب سایت مراجعه میکنند یعنی چیزی که موتور جستجوگر از یک سایت میبینید با چیزی که یک انسان میبیند متفاوت است . موتور جستجو متن ها را میخواند و برایش تصاویر و انیمیشن ها بی مفهوم است . 

به همین علت هم بود که سریعا بساط سایت هایی که کلا با فلش طراحی میشدند جمع شد چون انیمیشن ها و گرافیک فلش برای موتور نامفهوم بود و رتبه ی سایت هایی که با HTML و CSS ساخته شده بودند بسیار بهتر بود . 

در هر صورت اگر شیوه ای را اتخاذ کنیم که متن خالی توسط موتور ها قابل رویت نباشد به احتمال زیاد رتبه ای هم در موتور های جستجو نخواهیم داشت . 

 

موتورهای جستجوی وب 

در متن بالا که درباره ی موتورهای جستجو صحبت میکردیم اشاره ی کوتاهی هم به موتور جستجوی وب داشتیم . همانطور که بالا هم گفتیم این موتور ها یک خزنده به سمت سایت شما ارسال میکنند و این توانایی را دارد که محتوای وب سایت شما را به همراه کلمات کلیدی یک صفحه واکشی کند . یک برنامه ی دیگری به نام indexer وجود دارد اسنادی که خرنده آورده است را میخواند و دسته بندی میکند و به آنها رتبه میدهد . 

هر موتور جستجوگری بر اساس الگوریتم خاص خود این رتبه بندی را انجام میدهد . 

از آنجایی که سازندگان وب سایت ها میدانند که قرار است خزنده های موتور جستجو گر های مختلف به سایت آنها مراجعه کند پس شروع میکنند به بهینه کردن وضعیت سایت خود و آماده کردن آن برای خزنده های موتور جستجو که به این کار SEO یا بهینه سازی موتورهای جستجوگر گفته میشود . 

 

ویژگی موتورهای جستجو 

موتورهای جستجو بدون نظارت انسان کار میکنند . هر شخصی میتواند از آنها استفاده کند و برخی از موتورهای جستجو نیز دارای نقص های درونی هستند . 

اما اگر کسی بخواهد موتورهای جستجو و الگوریتم واقعی آن را دور بزند ممکن است موتور جستجو آنرا بعنوان spam بشناسد . 

موتورهای جستجو دارای انواع اطلاعات بصورت یکجا میباشد مانند : شماره تلفن ها ، جزوات و مقالات اموزشی ،‌ ویدیوها ، موسیقی ، روزنامه ها ، وضعیت آب و هوا و خیلی اطلاعات دیگر ...

موتورهای جستجو این قابلیت را دارند که انواع نیاز های کاربران را فراهم کنند . 

 

نکاتی که هنگام استفاده از موتور جستجوها باید رعایت کنید 

ما بعنوان یک جستجوگر باید یاد بگیریم که چطور عبارت دلخواهمان را به موتور جستجو بگوییم تا بهترین نتیجه را برای ما بیاورد . 

اپراتورهای جستجو به دو دسته ی اصلی تقسیم بندی میشوند :‌

  1. اپراتورهای Boolean
  2. اپراتورهای غیر Boolean

در اینجا منظور ما از اپراتور یک کلمه یا یک سمبلی است که تایپ میکنیم .اپراتور کلمه یا نمادی است که تایپ می کنیم. این راهنما را به موتور جستجو راهنمایی می کند تا بداند چه چیزی را جستجو کند. با استفاده از این اپراتورها می توانیم جستجوی خود را محدود یا گسترده تر کنیم ، بنابراین به ما کمک می کنیم تا وب سایت هایی را که برای شما مفید است پیدا کنیم.

اپراتورهای هر موتور جستجوگر ویژه ی خودش میباشد و باید نسبت به موتوری که استفاده میکنید اپراتور های انها را یاد بگیرید .

 

تکنیک های جستجوی Boolean

عبارت AND :

این عبارت به موتور جستجو گر میگوید یک عبارت یا عبارت دیگر اگر در محتوا بود به من نمایش بده . این راه کار باعث محدود شدن وب سایت ها و بهتره پیدا شدن نتیجه ی مورد نظر میشود مثلا اگر بخواهیم به موتور بگوییم گل و قرمز را برای ما پیدا کن یا گل و قرمز و آبی را پیدا کن باید رشته های زیر را جستجو کنیم :‌

  • گل AND قرمز
  • گل AND  فرمز AND آبی

در تصویر زیر من عبارت  گل AND قرمز AND آبی را در بخش تصاویر گوگل جستجو کردم نتیجه را ببینید :‌

تکنیک های جستجو در موتورهای جستجوگر - آموزش ساخت موتور جستجو

عبارت OR :

این عبارت به موتور جستجو میگوید هر چیزی که OR بین آنها قرار گرفت یکی از آنها را پیدا کن مثلا گل یا آسمان فرقی ندارد پس گل OR آسمان ممکن است در نتایج جستجو هم آسمان داشته باشد هم گل ! 

این مورد باعث زیاد شدن نتایج جستجو و سخت تر شدن پیدا کردن هدف اصلی میشود ولی بازه ی جستجو را گسترده میکند که کاربرد های خاص خود را دارد . 

برای مثال من در تصویر زیر کیبورد OR ساعت را جستجو کرده ام که هم نتایج ساعت و هم نتایج کیبورد را برای من آورده است . 

آموزش ساخت موتور جستجو

 

عبارت NOT :

این عبارت باعث حذف شدن یک کلمه خاص از نتایج جستجو میشود مثلا اگر ما به دنبال گوشی موبایل هستیم ولی نمیخواهیم مدل LG را نمایش دهد به راحتی مینویسیم  موبایل -ال جی . توجه کنید که این عبارت در دستورات جستجوی گوگل با علامت منفی یا - انجام میگیرد تصویر زیر را ببینید 

آموزش ساخت موتور جستجو - آموزش عملکرد موتور های جستجوگر

 

تکنیک های جستجوی Non-Boolean در موتور های جستجوگر 

عبارت + :‌ این درست مثل AND عمل میکند یعنی اگر در بین دو یا چند عبارت قرار گیرد همه ی آنها باید در نتیجه ی جستجو باشند مثلا گل + أبی + قرمز 

باز مثالی در تصویر زیر آماده کرده ایم ببینید . 

آموزش ساخت موتور جستجوگر - موتور های جستجو چطور کار میکنند

عبارت - :‌

این عبارت هم دقیقا مثل NOT عمل میکند که البته در مثال بالا در گوگل ما فقط توانستیم از - استفاده کنیم چون دستور گوگل همین است . 

عبارت "" :

هر چیزی که بین " " قرار بگیرد به موتور جستجو میگوید عینا همین را جستجو بکن و جستجوی شما را خاص میکند . برای مثال تصویر زیر را ببینید 

آموزش کار با موتور های جستجو - آموزش ساخت موتور جستجوگر

 

آموزش ساخت موتور جستجوی شخصی با Php و Mysql

شاید خیلی هیجان انگیز باشه که یه موتور جستجو بسازید هر چند ساده !‌ کلی مفاهیم یاد میگیرید و کلا دستتون میاد که موتور های جستجو چطور کار میکنند . 

ما قصد نداریم موتور جستجو گر حرفه ای بسازیم که در اندازه ی Yahoo یا Google باشه ما داریم تمرین میکنیم و حداقل یک موتور جستجو در حد موتور جستجوهای بومی که میتونیم بسازیم باهاش تفریح کنیم . 

پس شروع میکنیم و  با استفاده از ابزارهای اوپن سورس مثل PHP و MySQL این کار را انجام میدیم . 

خب از آنجایی که ما در این آموزش از زبان برنامه نویسی PHP استفاده خواهیم کرد طبیعتا شما باید با مفاهیم این زبان برنامه نویسی آشنا باشید و اگر آشنا نیستید اشکالی ندارد ما قبلا یک دوره ی آموزشی برای این زبان برگزار کردیم که از لینک زیر میتوانید تهیه کنید . 

دوره ی آموزش کامل زبان برنامه نویسی PHP به فارسی

همچنین اگر قصد دارید در زبان PHP تسلط شما بیشتر شود ما دو دوره ی پیشرفته دیگری هم برگزار کردیم که مطمئنا باعث ارتقای دانش و تخصص PHP در شما میشود و در تمامی زمینه های ساخت وب سایت به درد شما میخوره . 

از لینک های زیر میتوانید این دوره های پیش رفته را ببینید و در صورت تمایل در انها شرکت کنید . 

دوره ی آموزش ساخت فریمورک MVC با PHP 

دوره ی آموزش پروژه محور ساخت سیستم هتلداری با زبان PHP و الگوی MVC

همچنین به علت اینکه پایگاه داده مورد استفاده ی ما MySQL است بهتره کمی کار با این پایگاه داده و کوئری های sql آشنا باشید ( با یه سرچ ساده پیدا میکنید ) . 

خب با این فرضیات ما شروع میکنیم ابتدا یک فرم خالی HTML میسازیم که کاربران عبارت مورد جستجو را آنجا وارد کنند و سپس یک دکمه میزاریم برای جستجو که وقتی کلیک شد جستجو انجام بگیرد . 

 

آموزش ساخت بخش پایگاه داده موتور جستجوگر اینترنتی 

خب همانطور که بالا اشاره کردیم پایگاه داده ی ما MySQL است پس باید ابتدا این پایگاه داده را نصب و راه اندازی کنید اگر ویندوزی هستید بهتره یکی از برنامه های زیر را بگیرید که PHP و MySQL و دیگر مخلفات را داخل خودش دارن :‌

  • Xampp
  • Wampp
  • EasyPHP

توجه کنید که یکی از موارد بالا را به انتخاب خودتان نصب و اجرا کنید و ما Xampp را پیشنهاد میکنیم . 

برای شروع یک پایگاه داده با هر اسمی که دوست دارید بسازید و سپس یک جدول درونش به نام SEARCH_ENGINE بسازید . 

کد sql زیر به شما کمک میکند یک جدول با نام SEARCH_ENGINE بسازید .

CREATE TABLE SEARCH_ENGINE (
       `id` INT(11) NOT NULL AUTO_INCREMENT,
       `pageurl` VARCHAR(255) NOT NULL,
       `pagecontent` TEXT NOT NULL,
       PRIMARY KEY (`id`))

 

آموزش ساخت فرم برای موتور جستجوگر اینترنتی 

خب ، بعد از اینکه پایگاه داده آماده شد و جدول مورد نظر را ساختیم الان نوبت اینه که یک فرم HTML بسازیم که کاربران نهایی ما وقتی موتور جستجوگر ما را باز میکنند آنرا ببینند و بتوانند عبارت مورد نظر خود را تایپ کنند و دکمه ی جستجو را بزنند . 

در ریشه ی اصلی سرور مجازی که نصب کردید یه فایل جدید به نام index.php بسازید و محتویات زیر را درونش کپی کنید  . 

<html>
       <head>
             <title> My search engine </title>
       </head>
       <body>
             < form action = 'search.php' method = 'GET' >
                    < center >
                           <h1 > My Search Engine </h1 >
                           < input type = 'text' size='90' name = 'search' >
                           </ br >
                           </ br >
                           < input type = 'submit' name = 'submit' value = 'Search source code' >
                           < option > 10 </ option >
                           < option > 20 </ option >
                           < option > 50 </ option >
                    </ center >
             </ form >
       </ body >
</ html > 

فرم ما اکنون تکمیل شده و آماده استفاده است. این فرم توسط کاربران نهایی برای ورود به جستجوگر استفاده می شود و در عین حال به کاربران این امکان را می دهد که شماری از نتایج را که باید نشان داده شوند محدود کنند.

 

آموزش نوشتن الگوریتم موتور جستجوگر اینترنتی 

برای این کار ابتدا یک فایل دیگر PHP به نام search.php بسازید و در کنار همان index.php که بالا ساختیم قرار دهید . این فایل از بخش های زیر تشکیل خواهد شد . 

 

اتصال به پایگاه داده 

از کد زیر برای اتصال به پایگاه داده استفاده کنید 

mysql_connect ( "localhost", "USER_NAME", "PASSWORD" ) ; 
mysql_select_db ( "DB_NAME" );

خب حالا که اتصال به پایگاه داده برقرار شد بهتره که کوئری مناسب با کلمه یا عبارت مورد جستجو توسط کاربر را بنویسیم . 

نوشتن کوئری متناسب با عبارت جستجو شده 

کوئری مناسب برای این کار بصورت خیلی ساده طبق کدهای زیر است . 

$search_exploded = explode ( " ", $search );
$x = 0; 
foreach( $search_exploded as $search_each ) {
 $x++;
 $construct = " ";
 if( $x == 1 )
   $construct .= "keywords LIKE '%$search_each%' ";
 else
   $construct .= "AND keywords LIKE '%$search_each%' ";
  }
$construct = " SELECT * FROM SEARCH_ENGINE WHERE $construct ";
$run = mysql_query( $construct ); 

کار بعدی ما واکشی اطلاعات از پایگاه داده و نمایش آن به کاربر است . اگر جستجو نتیجه ای دربرنداشت هم باید پیامی به کاربر ارسال کنیم . 

واکشی نتیجه از پایگاه داده و قرار دادن نتیجه در اختیار کاربر . طبق کدهای زیر باید انجام بگیرد .

 if ($foundnum == 0)
             echo "Sorry, there are no matching result for <b> $search </b>.
             </ br >
             </ br > 1. Try more general words. for example: If you want to search 'how to create a website' then use general keyword like 'create' 'website'
             </ br > 2. Try different words with similar  meaning
             </ br > 3. Please check your spelling"; 
                    else {
                           echo "$foundnum results found !<p>";
                           while ( $runrows = mysql_fetch_assoc($run) ) {
                                  $title = $runrows ['title'];
                                  $desc = $runrows ['description'];
                                  $url = $runrows ['url'];
                                  echo "<a href='$url'> <b> $title </b> </a> <br> $desc <br> <a href='$url'> $url </a> <p>";
                    }
             } 

اکنون موتور جستجوی ساده ی ما آماده است .  در زیر کد کامل search.php را میبینید . 

<?php
       $button = $_GET[ 'submit' ];
       $search = $_GET[ 'search' ]; 
 
       if( !$button )
             echo "you didn't submit a keyword";
       else {
             if( strlen( $search ) <= 1 )
                    echo "Search term too short";
             else {
                    echo "You searched for <b> $search </b> <hr size='1' > </ br > ";
                    mysql_connect( "localhost","USERNAME","PASSWORD") ; 
                    mysql_select_db("DBNAME");
 
                    $search_exploded = explode ( " ", $search );
                    $x = 0; 
                    foreach( $search_exploded as $search_each ) {
                           $x++;
                           $construct = "";
                           if( $x == 1 )
                                  $construct .="keywords LIKE '%$search_each%'";
                           else
                                  $construct .="AND keywords LIKE '%$search_each%'";
                    }
 
                    $construct = " SELECT * FROM SEARCH_ENGINE WHERE $construct ";
                    $run = mysql_query( $construct );
 
                    $foundnum = mysql_num_rows($run);
 
                    if ($foundnum == 0)
                           echo "Sorry, there are no matching result for <b> $search </b>. </br> </br> 1. Try more general words. for example: If you want to search 'how to create a website' then use general keyword like 'create' 'website' </br> 2. Try different words with similar  meaning </br> 3. Please check your spelling"; 
                    else {
                           echo "$foundnum results found !<p>";
 
                           while( $runrows = mysql_fetch_assoc( $run ) ) {
                                  $title = $runrows ['title'];
                                  $desc = $runrows ['description'];
                                  $url = $runrows ['url'];
 
                                  echo "<a href='$url'> <b> $title </b> </a> <br> $desc <br> <a href='$url'> $url </a> <p>";
 
                           }
                    }
 
             }
       }
 ?>

 

ساختار موتور جستجوگر اینترنتی پیشرفته تر 

موتور های جستجوگر معمولا پیشرفته تر هستند یعنی شامل بخش ها و کدهای زیادی هستند که برای مثال یک عبارت خاص را از بین میلیون ها اسناد واکشی میکنند و نتایج را دسته بندی و مرتب سازی کرده و به کاربر نهایی نمایش میدهند . 

حالا این وسط ممکن است کاربر نهایی یکی از عبارت ها را اشتباه تایپ کرده باشد ولی موتور جستجوگر شما باید قادر باشد آنرا بفهمد

یا مثلا کاربر کلمه ی دقیق یک چیزی را به یاد نمی آورد و با اشاره به کلمات مشابه آن میخواهد آنرا پیدا کند گوگل این قابلیت را دارد که به این شخص در پیدا کردن گمشده ی خود کمک کند 

پس موتور های جستجوگر بزرگ در اینترنت بسیار گسترده تر از حوصله ای این آموزش و گنجایش اینجاست . ما قصد داریم اساس و پایه را یاد بگیرید سپس میتوانید آنرا گسترش دهید و حداقل یک موتور جستجو متوسط برای ایران بسازید که بومی باشد و به درد بخور !!!

 

بخش های اصلی یک موتور جستجوی اینترنتی 

  1. یک خزنده که اصطلاحا به آن crawler گفته میشود که وظیفه اش واکشی اطلاعات مربوط به سایت ها و اسناد و کلا جمع آوری هر آنچه در اینترنت است . 
  2. یک بخش index برای نگهداری صفحات یا اسناد ذخیره شده که بصورت ساختاری در آنجا قرار گرفته اند
  3. و یک مخزن اسناد برای نگهداری اطلاعات مربوط به کل اسناد موجود 

 

خزنده یا crawler موتور های جستجو چطور کار میکنند 

همانگونه که بالا هم گفتیم خزنده ها یا crawler ها در سرتاسر اینترنت میچرخند و اطلاعات سایت ها را جمع آوری میکنند اما خزنده ها باید لیستی از URL های اینترنتی داشته باشند که به آنها رجوع کنند . برای این کار چند روش کلی وجود دارد که در زیر به آنها پرداخته ایم .

  • متداول ترین روش این است که URL ها را بعنوان یک لیست و feed به خزنده بدهیم . سپس خزنده یک به یک به آنها رفته و عمل crawle را انجام دهد . 
  • روش دیگر دانلود کردن لیستی از URL ها و استفاده از آنهاست . 

ابتدا یک تجزیه کننده ی لینک ها مینویسیم تا لینک های واقعی را بشناسیم . کدهای زیر را ببینید .

          $file_handle = fopen( " Quantcast-Top-Million.txt ", "r" );
 
       while ( !feof ( $file_handle ) ) {
             $line = fgets( $file_handle );
             if( preg_match( '/^\d+/',$line ) ) { # if it starts with some amount of digits
                    $tmp = explode( "\t",$line );
                    $rank = trim( $tmp[0] );
                    $url = trim( $tmp[1] );
                    if( $url != 'Hidden profile' ) { # Hidden profile appears sometimes just ignore then
                           echo $	
			}
		}
	}
	fclose( $file_handle );

سپس کد خزنده را برای دریافت محتوای یک URL مینویسیم که دانلود کردن دااده های سایت های در لیست ممکن است کمی زمان ببرد . 

   $file_handle = fopen("urllist.txt", "r");
         while (!feof($file_handle)) {
                 $url = trim(fgets($file_handle));
                 $content = file_get_contents($url);
                 $document = array($url,$content);
                 $serialized = serialize($document);
                 $fp = fopen('./documents/'.md5($url), 'w');
                 fwrite($fp, $serialized);
                 fclose($fp);
         }
         fclose($file_handle);

 

خزنده ی بالا یک خزنده ساده ی تک رشته ای است که داخل حلقه ای تمامی URL ها را واکشی میکند اطلاعات آنها را دریافت و در دیسک ذخیره سازی میکند  .

نکته ای که وجود دارد این است که URL به همراه محتوای آن هم در یک فایل ذخیره میکنیم و این URL به رتبه بندی لیست و همچنین برای اینکه متوجه شویم منبع این محتوا کجاست به درد میخورد . 

بخش INDEX 

این بخش باید مسئولیت هایی را برعهده ی خود داشته باشد :‌

  1. نیاز است که محتویات را در دیسک ذخیره کند و آنها را واکشی کند 
  2. وقتی میخواهیم همه چیز را دوباره تولید کنیم باید قادر باشد خودش را پاکسازی کند 
  3. باید اسنادی که ذخیره میکند را اعتبار سنجی کند  

با تعاریف بالا باید interface خود را به شکل زیر داشته باشیم 

 interface iindex {
                 public function storeDocuments($name,array $documents);
                 public function getDocuments($name);
                 public function clearIndex();
                 public function validateDocument(array $document);
         }

 

هر چند پیاده سازی یک موتور جستجو کار ساده ای نیست ولی ما سعی کردیم کلیت موضوع را در این مقاله برای شما آشکار کنیم . چیزی که شما نیاز دارید این است که الان بدون ترس وارد کدها شوید و تمرین و تست کنید برای هر بخشی کی راه کاری مطمئنا وجود دارد . 

 

به اتمام مقاله رسیدیم و منتظر نظرات و پیشنهادات شما برای تکمیل این مقاله هستیم 

.

 

 


پایان 👍
برای استفاده ی دیگران و حمایت از ما در جامعه های زیر به اشتراک بگذارید

مهندس عباس نیک زاد


برای نوشتن نظر وارد شوید ورود
یا به عنوان یک میهمان نظر خود را بنویسید :
    1. اگر سوال شما طولانی است و نیاز به پشتیبانی خوبی دارد در پروفایل خود تیکت باز کنید تیم پشتیبان ما پاسخ میدهد
    2. سعی کنید نظر خود را بیش از چند جمله بنویسید
    3. نظرات شامل توهین و تهمت و نامرتبط تائید نخواهد شد

محمدرضا بیات :
سلام خسته نباشید بسیار عالی بود . دوره ی خوبی برای پی اچ پی دارید که یاد بگیریم ؟‌ ممنون
پاسخ :

سلام نظر لطف شماست بله دوره های مختلف ویدیویی و با کیفیت برای زبان php برگزار کردیم .

با احترام

ناصر شهسوار :
خیلی عالی بود دستتون درد نکنه
احسان رفیع زاده :
سلام . آموزش بسیار عالی و کاربردی بود از خوندنش لذت بردم و خیلی چیزا در مورد موتورهای جستجو گر یاد گرفتم احسنت !
امید ابراهیمی :
مقاله ی فوق العاده ای بود ممنون از زحماتی که جناب مهندس نیکزاد میکشند
برای دریافت جدید ترین آموزش ها ما را در فضای مجازی دنبال کنید
دوره ی آموزش پروژه محور ساخت کافه بازار دوره ی آموزش پروژه محور ساخت فروشگاه دیجیکالا آموزش لاراول دوره ی آموزش ویو جی اس
x
دوره های پیشنهادی برای شما
X
دوره های پیشنهادی برای شما