یادش بخیر 2 سال پیشسلام خدمت کلیهی دوستان
من یکی از بچههای تیم فنی موتور یوز هستم.
اومدم اینجا دیدم چه خبره!
سعی میکنم یکی یکی حرفهایی که زده شده رو پاسخ بدم. امیدوارم بحث خوبی اینجا در بگیره و درگیر حاشیههای بیخود نشیم.
خوب انتظار که ندارید یه موتور جستجوی تازهکار هر چی توش سرچ میکنید همه رو درست جواب بده! من شخصاً تمام جستجوهای فارسیم رو توی یوز میزنم، اکثراً جواب میگیرم. اونایی که جواب نمیگیرم میرم توی گوگل. البته مدتیه جستجوهای انگلیسیم رو هم توی یوز آزمایش میکنم، بعضی وقتها جواب میگیرم، ولی در مجموع جوابای جستجوهای انگلیسی توی یوز اصلاً خوب نیست. دلیلش هم اینه که تمرکز ما تا به حال روی سایتهای فارسی زبان بوده. انشاءالله توی برنامهی فاز بعدیمون (یعنی امسال) ورود به سایتهای انگلیسی هست.
یه نکته هم همینجا بگم: نتیجهی نوزدهم همین جستجو، سایت autotrader.ca هست که انگلیسی هست. قابل توجه دوستی که میگفت گوگل مترجمش رو با جستجوش تلفیق کرده (البته ما هنوز در این زمینه ادعایی نداریم چون راه خیلی طولانیه و کار زیاده. ولی اینطوری هم نیست که ما هیچ کاری نکرده باشیم!).
در مورد هزینهی موتور: همونطور که یکی از دوستان اشاره کردند، کل هزینهای که این موتور داشته ۷ میلیارد بوده نه ۱۷۰ میلیارد. اگه یه حساب خیلی ساده بکنید، میبینید که ۷ میلیارد خیلی هزینهی کمی بوده. بیش از ۴ سال هزینهی نیروها رو جمع بزنید با هزینهی سرورها و پهنای باند و غیره.
اما در مورد این که گوگل هست و مگه ما بیکاریم موتور بسازیم و ...: دوستانی که نمیدونن اگه یه تحقیقی در مورد موتورهای جستجو بکنن، متوجه میشن که موتور جستجو در دنیا به عنوان لکوموتیو IT شناخته میشه. یعنی زیرساختی که موتور جستجو فراهم میکنه میتونه IT کشور رو تکون بده. گوگل هم از یه موتور جستجوی ساده شروع کرده و الان IT جهان رو داره تکون میده. همین الان ما زیرساختی درست کردیم که باهاش میشه خیییییلی کارها انجام داد. به عنوان مثال انواع پروژههای دانشگاهی رو میشه تعریف کرد و بهشون سرویس داد. ما الان هم data داریم و هم قدرت پردازش کافی و هم تکنولوژی پردازش دادهی حجیم (big data).
این رو قبول دارم که باید یه توضیح اجمالی در مورد الگوریتمهای رتبهبندیمون منتشر کنیم تا دوستانی که میخوان کارهای seo انجام بدن بدونن چه کاری تأثیر داره. انشاءالله در آیندهی نزدیک این کار رو میکنیم. ما تا به حال تقریباً تمام انرژیمون رو روی کار فنی موتور گذاشتیم و قصد داریم از این به بعد بیشتر روی ارتباط با کاربرا و مدیران سایت وقت بذاریم تا بتونیم کاربر جذب کنیم و سرویس خوبی ارائه بدیم. البته توجه کنید که پایهی رتبهبندی توی تمام موتورهای جستجو یکسان هستن و یه سری نکات هستند که تفاوت ایجاد میکنن. بنابراین به طور کلی اگه یه سایت رفتار اسپم مانند داشته باشه، رتبهاش میاد پایین (البته دیگه این هنر موتوره که چقدر بتونه سایتهای اسپم رو درست تشخیص بده، که همونطور که میدونید توی فارسی گوگل هم خیلی در تشخیص اسپم موفق نیست). یا مثلاً تیتر صفحه بخش مهمی هست، ولی اگه توی تیتر یه صفحه انشا بنویسید ارزشش میاد پایین! این کلیات توی موتور یوز هم هستن ولی در مورد جزئیاتش انشاءالله بعداً توضیح میدیم.
اما این رو خیلی با قاطعیت میگم: ما هیچ کار خاصی توی رتبهبندی نتایج نکردیم که مثلاً فکر کنید فلان سایت رو همیشه بالاتر میاریم (با توجه به ارتباط تنگاتنگی که با تیم رتبهبندیمون دارم (چون الگوریتمهای رتبهبندی باید توی index اعمال بشن)، در جریان ریز کارهاشون هستم). حتی ویکیپدیا رو هم یه مدت بهش فکر کردیم که توی نتایج بالاتر از بقیهی سایتها بیاریم، اما دیدیم نتایج به هم میریزه و برگردوندیمش. یعنی شما توی رتبهبندی 1,000,000,000 صفحه، هر کاری که خارج از الگوریتمهای هوشمند انجام بشه، کار رو کلاً خراب میکنه. یعنی اصلاً شدنی نیست که دستی فلان سایت رو توی نتایج بیاریم بالا! به جز تبلیغات که هنوز ما روش کار نکردیم.
منظورتون رو متوجه نمیشم. یعنی انتظار دارن از هیچ کتابخونهای استفاده نکنیم و همممممممهی همهاش رو خودمون بنویسیم؟! مثلاً از MySql یا MSSql یا هر پایگاه دادهی دیگهای استفاده نکنیم و خودمون بنویسیم!!! خوب قطعاً این کار منطقی نیست! همونطور که احتمالاً خبر دارید، گوگل هم از MySql استفاده میکرده که البته به MariaDb تغییر داده (نگفتم موتور جستجوش با MySql پیادهسازی شده ها! تو بخشهایی از سیستمهای مختلفش از MySql استفاده میکنه) و حتی یه نیرو فرستاده کمک تیم MariaDb:
http://www.i-programmer.info/news/84-database/6386-google-drops-mysql-for-mariadb.html
(این صفحه رو با جستجوی «google mariadb» توی یوز پیدا کردم)
و همچنین یکی از کاربران اساسی MySql، فیس بوک هست:
http://www.mysql.com/customers/view/?id=757
صد البته این شرکتها بعد از این که از این تکنولوژیها استفاده میکنن، بعد از چند سال بهشون مسلط میشن و شروع میکنن توشون تغییرات اساسی میدن و در واقع تکنولوژی رو دستشون میگیرن.
خوب توی پروژهی ما هم این اتفاق تو بخشهای مختلف افتاده، با این تفاوت که موتور جستجوی متنباز آمادهای در scale ای که ما میخواستیم وجود نداشت که بگیریم ازش استفاده کنیم. برای همین بعد از امتحان کردن solution های مختلف، مجبور شدیم بیشتر بخشهای موتور رو خودمون بسازیم (همونطور که میدونید گوگل و بینگ و غیره هیچ وقت نه کدشون رو منتشر میکنن و نه تکنولوژیشون رو). الان بعد از این همه کار، من که مسئول تیم index هستم خدمتتون میگم که به معماری distributed, scalable, realtime و fault-tolerant رسیدیم که دوستانی که زمینهی نرمافزار داشته باشن میدونن که فراهم کردن همهی اینها یا هم چقدر سخته. گوگل که ۱۷ ساله داره سرویس جستجو ارائه میده، تنها چهار ساله که به معماری realtime رسیده. یعنی چی؟ یعنی این که اکثر موتورهای جستجو به صورت batch کار میکنن: یه index دارن که جواب جستجوهای کاربران رو میده، و یه index دیگه دارن که بهروزرسانی میشه. بعد از یه مدت (مثلاً هر هفته، یا هر شب) جای این دو تا رو با هم عوض میکنن و در نتیجه نتایجی که مثلاً دیروز خزش شدن، امروز توسط کاربرا دیده میشن. اما توی سیستم realtime، هر صفحهای که خزش میشه، با یه فاصله خیلی کوتاه قابل جستجو میشه (که این فاصله توی موتور یوز حدود یک دقیقه هست).
توجه کنید! منظور من از این همه سخنرانی این نیست که موتور یوز خیلی هم خوب هست و هیچ مشکلی هم نداره و حرف هم نباشه! منظور اینه که توی بخشهای مختلفی که موتور داره، ما سعی کردیم بهترین کار ممکن رو انجام بدیم و البته میدونیم توی رتبهبندی هنوز کار زیاد داریم. یه بخشی از این کار هم از طریق استفادهی کاربرا از موتور انجام میشه. هر چقدر جستجو توی موتور بیشتر باشه، پروسهی learning موتور بهتر انجام میشه.
نتیجهگیری اخلاقی: الان تکنولوژی موتور کاملاً در دست ماست و کاملاً بومی هست.
در مورد جستجوی «how i can paint my car»: دوست من ما هنوز روی انگلیسی تمرکز نکردیم. بعد هم شما یه مدت از یوز استفادهی واقعی بکن، بعد بگو چقدر ازش راضی بودی. با یه جستجو که نمیشه چیزی رو نفی یا اثبات کرد!
در مورد ف.ی.ل.ت.ر کردن گوگل: اصلاً قرار نیست چنین چیزی اتفاق بیافته. چون مشخصه که اگه این اتفاق بیافته، اولین کسی که ضررش رو میبینه، موتور یوز هست چون همه از چشم اون میبینن. بنابراین هیچ یک از مسئولین موتور قصد چنین کاری رو ندارن.
اون حرفی هم که یکی از دوستان زده که:
دقیقاً حرفیه که ما میزنیم.
:|
دوست من، حداقل قبلش یه سر خبرای منتشر شده در مورد موتور یوز رو میخوندی! همونجا گفتن که هشتاد نفر روی این موتور کار کردن. بازم :|
این که بینگ نتونسته به پای گوگل برسه، یه دلیل عمده داره: گوگل دیتای کاربرا رو داره! و البته یه زیرساخت خیلی قوی. ما توی موتورمون زیرساخت قوی داریم (نمیخوام با گوگل مقایسه کنم! در scale خودمون زیرساختمون مناسب هست)، ولی دیتای کاربرا رو نداریم! (البته توی این یکی دو ماهه یه مقداری دیتا به دست اوردیم که داریم روش کار میکنیم تا موتور از روش learn بشه) به لطف دوستانی هم که میگن ما از این موتور استفاده نمیکنیم هیچ وقت این دیتا رو به دست نخواهیم اورد! :|
اما یه نکتهی دیگه رو توجه کنید: بینگ داره تو scale بینالمللی با گوگل رقابت میکنه در حالی که یوز میخواد تو ۳ فاز اولش در scale ایران با گوگل رقابت کنه. این خیلی فرق میکنه!
خزشگر ما به صورت خودکار صفحات رو استخراج میکنه و خزش میکنه. اما بالاخره ممکنه یه سایتی رو پیدا نکنه، یا تعداد صفحاتی که از یه سایت داره کم باشه. برای رفع این جور موارد، میتونید آدرس سایتتون رو به [email protected] بفرستید تا سایت رو در اسرع وقت در فهرست خزش قرار بدیم.
به قول فامیل دور: من دیگه حرفی ندارم!
دوست گرامی! اولاً که اون اسپایدر که شما میگی، برای خودش عظمتی داره! فقط در نظر داشته باش که بیش از چهار میلیارد link رو آماده داریم، که یک میلیاردشون رو خزش کردیم! و این یک میلیارد صفحه نیاز به update شدن دارن! علاوه بر این باید صفحات جدید هم گرفته بشن! حالا شما با توجه به محدودیت پهنای باند، باید بتونی از بین این چهار میلیارد صفحه انتخاب کنی که کدوم صفحات جدید خزش بشن، و کدوما update بشن!
ثانیاً همونطور که یکی از دوستان اشاره کرد، شما بیا و برای ما یک میلیارد صفحه رو با تابع FULLTEXT شاخصگذاری و جستجو کن! ببینم به ده برابر این زمانهای جستجویی که یوز داره جواب میده میرسی؟! همونطور که قبلاً گفتم index ما توزیعشده، realtime، مقیاس پذیر (یعنی برای افزایش گنجایشش کافیه بهش سرور اضافه کنید و خود خوشه به صورت dynamic دادهها رو balance میکنه و نیازی به restart کردن و از این قبیل کارها نیست) و با قابلیت تحمل خطا هست (یعنی اگه یک یا چند سرور crash کنن، کل خوشه مشکلی پیدا نمیکنه و به صورت خودکار سرورهای دیگه رو جایگزین میکنه). حالا شما بیا این رو با FULLTEXT مقایسه کن!
یکی از دوستان هم گفته بودن:
در جواب باید بگم که نخیر این طور نیست و تمام یک میلیارد رکورد ما دارای محتوای کامل صفحه هستن. تمام هنر ما هم همین بوده! البته روی کوتاه کردن متن صفحات کارهایی کردیم، اما کار سختیه که بتونید متن رو کوتاه کنید، و کیفیت جستجو رو از دست ندید (بعضی وقتها جستجو روی کلمات خاصی هست که ممکنه شما موقع کوتاه کردن متن حذفش کرده باشید و در نتیجه، نتیجهی جستجوتون خراب خواهد شد).
فقط بگم که حجم index ما بیش از دو ساله که از یک ترابایت گذشته.
خوب دوست من اشتباه میکنی! ما crawler و index خودمون رو داریم و کاری به bing یا گوگل یا هر موتور دیگهای نداریم. البته انصافاً واقعاً خوشحال شدم که شما از لفظ «اگه اشتباه نکنم» استفاده کردید. مورد داشتیم توی یه فروم دیگه یه بنده خدایی با اطمینان کامل گفته بود که یوز از بینگ استفاده میکنه!
دوست من ما از هیچ تکنیک خاصی برای دزدیدن کلیک و بالا بردن رتبهی الکسا استفاده نمیکنیم چون این کار برای موتور جستجو بیمعنیه. یعنی ایده زیاد داشتیم ها! ولی استفاده نکردیم (میتونید سایت رو زیر و رو کنید تا ببینید هیچ کار اضافهای توی موتور انجام نمیشه، بر خلاف سایتهایی که تا یه جا کلیک میکنی ده تا popup باز میکنن!). البته رتبهی الکسامون به ۱۱۹ هم رسید که به خاطر استفادهی کاربرا بوده نه چیز دیگهای. البتهتر(!) این که الان رتبهی الکسامون توی ایران افت کرده (جهانیش داره هنوز رشد میکنه) که دلیلش ضعف ما توی تبلیغات بوده و این که به هر دلیل نتونستیم همهی کاربرامون رو حفظ کنیم. این رو میدونیم و داریم سعی میکنیم کیفیت سرویس رو بالاتر ببریم تا بتونیم کاربرا رو نگه داریم.
در جواب باید بگم که همونطور که قبلاً هم مدیر پروژه توضیح داده ( http://itiran.com/d/68499 ) تیم یوز از تیم گرگر کمک گرفته. در واقع فقط شباهت توی بخش UI سیستم هست و حتی الگوریتمهای رتبهبندی گرگر با یوز خیلی فرق میکنه (با چند تا جستجو توی دو تا موتور و مقایسهی نتایج متوجه موضوع خواهید شد). توجه دارید که UI فقط یکی از کامپوننتهای متعدد موتور جستجو هست (Crawler, Parser, Ranker (Offline, Online), Indexer, Searcher, ...).
یکی از دوستان حرف خوبی زده:
واقعاً همینطوره. ما موتور رو برای کاربرا ساختیم نه برای دل خودمون! فکر هم نکنید چقدر پول گرفتیم و خوردیم! الان نزدیک ۲ ساله که شخص بنده از چند جای دیگه با حقوق نزدیک به دو برابر اینجا پیشنهاد کار دارم، اما نرفتم، چون معتقدم این پروژه میتونه کشور رو تکون بده. بقیهی نیروهامون هم کم و بیش همینطوری هستن. بالاخره بچهها فارغالتحصیلای دانشگاههای تراز اول کشورن و جاهای مختلفی میتونن کار بکنن. بگذریم!
نخیر دوست من! اولاً که zal به تنهایی قابل استفاده نیست و فقط از طریق salam قابل استفاده هست که خود salam یه meta search engine هست، یعنی نتیجه رو از چندین موتور جستجو میگیره و ترکیب میکنه و نمایش میده (البته این کار، اگه قرار باشه درست انجام بشه کار سختیه. فکر نکنید که با دو خط کد میشه این کارو کرد! بچههای salam زحمت کشیدن روی این پروژه. ولی مقایسهاش با یوز درست نیست). بقیهی اونایی هم که به اسم موتور جستجو عنوان میشن، تماماً یا موتور جستجوی خاص منظوره هستن (مثلاً موتور جستجوی خانه، یا ماشین)، یا meta search engine هستن، یا تعداد صفحاتشون خیلی کمه (زیر ۱۰ میلیون صفحه) که عملاً نمیشه ازشون استفاده کرد! فقط پارسیجو هست که ۲۰۰ میلیون صفحه داره، و یوز که یک میلیارد صفحه داره. گرگر هم که قبلاً دربارهاش صحبت کردم.
نخیر اینطور نیست! ما خزش رو خودمون انجام میدیم. دلیل این که یه همچین اتفاقی افتاده، همونه که بالاتر توضیح دادم. خزشگر کار سختی داره! توی یک میلیارد صفحه باید همه رو بره update کنه که در نتیجه ممکنه بعضیا از دستش در بره. شما بیزحمت آدرس سایتتون رو برای ما به آدرس [email protected] بفرستید تا بررسی کنیم مشکل از کجاس.
در مورد جستجوی عکس: جستجوی عکس یوز خیلی تازه کار هست و در نتیجه کاملاً قابل انتظاره که توش اشکال زیاد باشه. البته بچههای تیم عکس دارن شدیداً روش کار میکنن و خیلی از اشکالا رو اخیراً برطرف کردن. تعداد عکسهامون هم قراره به زودی به حدود ۱۵ برابر برسه.
من عاجزانه درخواست میکنم یه همچین چیزایی رو به ما خبر بدید، تا بررسی کنیم اشکال کار از کجاس. دوستان ما تمام ایمیلهایی که به آدرس [email protected] میفرستید رو میخونن و برای رفعش به بخش مربوطه ارجاع میدن.
ببخشید میشه منبع خبرتون رو برای این که روسیه برای یاندکس ۴۲ میلیون دلار هزینه کرده بفرمایید؟ من خبر ندارم yandex چقدر هزینه برده، ولی این عدد یه کم، همچین یه کم به شدت کم به نظر میرسه! شما فرض بگیر که yandex کلهم اجمعین ۵۰ هزار تا سرور بیشتر نداشته باشه! (توجه داشته باشید که گوگل بیش از ۲ میلیون سرور داره!) هر سرور رو چند حساب کنیم خوبه؟! دیگه سرور در پیت هم بگیرید قیمتش ۲۰۰۰ دلار هست! چقدر میشه؟ میشه ۱۰۰ میلیون دلار! فقط هزینهی سرور! هزینهی دیتاسنتر، پهنای باند، نیروها و بقیهی هزینهها رو هم بذارید روش! من نمیدونم شما این عدد رو از کجا اوردید! بعد هم مقایسهاش کردید با عدد موهومی ۲۰۰ میلیارد تومن! که درستش ۷ میلیارد تومن بوده!
خوب این دوستمون حسابی از خجالت تیم ما در اومدن! :|
یکی دیگه از دوستان گفتن «اگه اشتباه نکنم طراحان یوز انتی ویروس شید رو هم قبلا ارایه کردن که از موتور انتی ویروس های دیگه استفاده میکرد.»
خوب دوست من اشتباه میکنید! ما هیچ ربطی به آنتی ویروس نداریم!
فقط ما نفهمیدیم چرا تا حالا گوگل yandex و baidu و امثالهم رو نخریده!
خوب برادر من! این همه فک زدم که بگم این موتور از پایه توسط جوانهای ایرانی طراحی شده! به مرور زمان هم تکمیل شده. ما بیش از چهار ساله داریم روی این موتور کار میکنیم. یه شبه که هواش نکردیم! خوب پس بسمالله: پای حرفت باش و همه جوره ما رو پشتیبانی کن.
من دیگه چیزی نگم بهتره! واضحه که خزشگر به صورت خودکار صفحات رو استخراج میکنه!
آقا به جان بچهام خسته شدم! چقدر تایپ کنم!
بازم خوشحال میشم اگه دوستی سؤال داره بپرسه.
چقدر ادعا
چقدر جو
و چقدر انگیزه بیخود و بیجهت و از همه مهمتر
چقدر سرمایه که به برباد رفت
2 سال گذشت و باید دوباره این حرفایی که نقل قول کردم رو خوند و سپس سری به الکسای یوز زد و در تناقضی سر کرد بین خنده و افسوس