اول از همه باید بگم من اولین باره که شروع کردم به اشتراک گذاشتن تجربیاتم و حتما بدون اشکال نخواهد بود . پس پیشاپیش ازتون عذر میخوام و بعد تشکر میکنم از کسانی که اشکالاتم رو بهم متذکر میشن.
از اینجا شروع میکنم به عنوان کسی که بیشتر تجربه کاریش تو بازار آمریکا شمالی بوده (ببین حالا چه فخری میفروشه ها) و این بازار به شدت رقابتیه. بزرگترین دقدقه کاربران سرعت نمایش داده هاست. قانونی وجود داره که صفحه ای که بالای 2 ثانیه لودش طول بکشه از دید کاربرا کار نمیکنه.حتی پا رو فراتر میذارم امروزه روز تقریبا هون 2 ثانیه رو هم دیگه راضی نمیشن.
پس مطمئن باشید اگه رقیبی دارین که صفحه هاش زودتر از شما لود میشه به زودی به شما چیره میشه.
خوب این کار ساده ای نیست وقتی پای جست و جو میان میلیون ها خط متن به زبان میاد.کار حتی سخت تر میشه وقتی که کاربر انتظار جست و جوی پیشرفته رو هم داره.
مثلا پست های کاربر امیر که از تاریخ 1 مرداد تا 3 شهریوره و داخلش کلمه "کتاب" بوده و "ریاضی" نبوده و بیشتر از 10 لایک خورده رو در نظر بگیرید
پیدا کردن این اطلاعات تو 100 تا رکورد میتونه زیر 1 ثانیه باشه . تو 100,000 تقریبا نزدیک به یک ثانیه و تو 10 میلیون رکورد تا چند ثانیه طول بکشه. این زمان رو به زمان مازاد برای لود صفحات اضافه کنید تا نتیجه فاجعه بار بشه.
خوشبختانه سرویس متن بازی وجود داره به نام الستیک سرچ که در ادامه براتون توضیح میدم به چه دردی میخوره.(یعنی مجانیه؟ بروووو!!!)
ایشون یه موتور جستجو نزدیک به زمان حال هست (near real time) یعنی چی؟ یعنی اینکه جستجو پیشرفته رو با کلی حالات مختلف رو میتونه تو میلی ثانیه نشون بده .
دیگه حتی میتونه متن های مرتبط با کلمه مورد نظر رو هم با امتیاز ارتباط از مرتبط ترین تا غیر مرتبط ترین بهتون جواب بده.
الستیک سرچ پارو فراتر از یه سرچ انجین ساده گذاشته و کار آنالیز داده ها رو هم براتون انجام میده. این یعنی گزارشات هم تو کسری از ثانیه انجام میشه.
جالب اینجاست که خود سرویسش REST هست یعنی شما برای ساختن رکورد ها (index) کافیه یه درخواست POST ایجاد کنین و برای انجام کوئری یه GET. خودش یه گوشه اجرا میشه تا شما صداش کنین.
البته باید اضافه کنم این سرویس اصلا قرار نیست جای دیتابیس رابطه ای شما رو بگیره. فقط قراره موقع خوندن دیتا به کمک شما بیاد.
یعنی طراحی شده که به طور خداپسندانه ای به ما کمک کنه.
اگه راست میگی کی داره ازین استفاده میکنه تو دنیا؟ باید بگم که Uber SoundCloud Shopify StackOverFlow Linkedin دیگه خسته شدم خیلی ان خودتون برید ببیند.
سوال سخت اینه کیا نیستن تو این لیست.
https://stackshare.io/elasticsearch/in-stacks
مرسی که تا اینجا همراهم بودین و تحملم کردین. سعی کردم به ساده ترین زبان ممکن توضیح بدم.
در ادامه بهتون پیشنهاد میکنم تا برای مطالعه بیشتر به مقاله دوست عزیزم آقای نشاطی رو مراجعه کنید.
چگونه الاستیک سرچ را برای رتبه بندی بهینه تنظیم کنیم؟ http://vrgl.ir/seEL8