پس زمینه

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

در نیمه دوم سال 2021, تیم جستجوی تحویلی بر روی بهبود این معماری کار کرد تا آن را هوشمندتر، قابل اندازه گیری تر و همچنین رشد آینده را برای موارد استفاده مختلف جستجو در Grab فعال کند. شکل زیر نمای کلی ساده شده از معماری قدیمی را نشان می دهد.

معماری قدیمی

بیان مسئله

با سیستم قدیمی، چندین مشکل مشاهده کردیم.

نتایج جستجو به طور متنی تطبیق می یافتند بدون در نظر گرفتن قصد و زمینه

اگر کاربر یک کوئری مانند "Roti Prata" (نان تافتونی) را وارد کند، احتمالاً به دنبال چنین غذاهایی است و تطبیق هایی با نام غذا باید نسبت به تطبیق هایی با نام تاجر-شریک یا تطبیق های دیگر اولویت داشته باشند.

در سیستم قدیمی، تمام موجودیت هایی که نام آنها به طور جزئی با "Roti Prata" مطابقت داشتند نمایش داده و بر اساس وزن هایی که کد شده بودند، رتبه بندی می شدند و تطبیق هایی با نام های تاجر-شریک در همیشه اولویت قرار می گرفتند، حتی اگر قصد کاربر به طور واضح جستجو برای خود "Roti Prata" بود.

این مشکل در Mart رایج تر بود، زیرا کاربران اغلب قصد جستجوی موارد را داشتند تا مغازه ها. علاوه بر عدم تشخیص قصد، سیستم جستجو قادر به در نظر گرفتن زمینه هم نبود؛ کاربرانی که در زمان ها و مکان های مختلف از همان کلمه کلیدی جستجو می کنند ممکن است اهداف متفاوتی داشته باشند. به عنوان مثال، اگر کاربران در روز به دنبال "نان" جستجو کنند، احتمالاً به دنبال کافه ها هستند در حالی که جستجوها در شب ممکن است برای صبحانه روز بعد باشد.

نتایج جستجو از عمودهای تجارتی مختلف به طور موثری تلفیق نشده بودند

در متن Grab, نتایج از عمودهای مختلف اغلب تلفیق می شوند. به عنوان مثال، در جستجوهای Mart, نتایج تبلیغاتی و نتایج آلی Mart همراه با هم نمایش داده می شوند؛ در جستجوهای غذا، نتایج تبلیغاتی، غذا و نتایج آلی Mart با هم تلفیق می شوند.

در معماری قدیمی، عمودهای تجارتی مختلف در لایه API تحویلی ترکیب می شدند که باعث رخدادهای سطحی و از دست دادن داده های مفید می شد، زیرا داده های مرحله recall جستجو همچنین در مرحله ادغام مورد ملاحظه قرار نگرفت.

عدم قابلیت مقیاس پذیری سریع به موارد استفاده جستجوی جدید و دشواری در استفاده مجدد اجزای موجود

کد پایه قدیمی به گونه ای نوشته نشده بود که به راحتی به موارد جدید مقیاس پذیر شود. اگر موارد جستجوی جدید نتوانند بر روی یک سیستم موجود بنا شوند، این می تواند خسته کننده باشد و هر بار که یک جستجوی جدید وجود داشته باشد، تابع را مجدداً بسازی کند.

راه حل

در این بخش، راه حل هایی از دو نظر معماری و پیاده سازی برای حل مسائل بالا ارائه می شود.

معماری

در معماری جدید، جریان از یادآوری لغوی تنها به چند لایه از یادآوری چندرتبه، و رتبه بندی گسترده می شود. اضافه کردن تقویت قابلیت هایی مانند تشخیص قصد و گسترش کوئری را فراهم می کند، در حالی که تغییر از یادآوری لغوی تک لغوی به چند لغوی، امکان استفاده از روش های یادآوری دیگری مانند مبتنی بر جاسازی و مبتنی بر گراف را باز می کند.

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

پیاده سازی

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

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

نتیجه

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

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

با طراحی ماژولار و پلاگین های ارائه شده توسط پلتفرم، استفاده از پلتفرم ما برای مشتریان با فرآیند ساده ایجاد شده است. علاوه بر این، پلاگین ها قابل استفاده مجدد برای پوشش موارد استفاده جدید و دستیابی به اثر مقیاس هستند.

به ما بپیوندید

مجله زیبایی و درمانی آذروت یک پلتفرم سوپراپ در جنوب شرق آسیا است که خدمات روزمره ای که برای مصرف کنندگان اهمیت دارند را ارائه می دهد. بیش از یک اپلیکیشن سفر و سرویس تحویل غذا، مجله زیبایی و درمانی آذروت خدمات روزمره متنوعی را در این منطقه ارائه می دهد، از جمله خدمات حمل و نقل، غذا، بسته بندی و خرید مواد غذایی، پرداخت های موبایلی و خدمات مالی در 428 شهر در هشت کشور.

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




-7004