چالش جستجو در محصولات با اشتباهات کاربران در PHP !



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

مثلا کاربرانی بودند که به جای تایپ "موتور آب" عبارت "l,j,v hf" را جستجو می کردند یا جستجو عباراتی که در دیتابیس موجود نبود.

فرض کنید جدولی به شکل زیر داریم:

بعد کلمات کلیدی را به نحوی در اختیار داریم یا از دیتابیس استخراج کردیم

که مثلا شده اینا

قبل از اون اشتباهاتی که داشته را باید برطرف کنیم

مثلا اگر جستجو براساس عبارتی که کاربر جستجو کرده (که در اینجا "l,j,v hf") هست نتیجه ای نداشت، اون وقت باید با تابع زیر یک تبدیل حروف انجام بدیم

بعد باید شباهت جستجو کاربر با کلمات کلیدی (که اینجا چند تا نوشتم) رو پیدا کنیم به عنوان مثال با کد زیر میشه این کار رو انجام داد :

اطلاعات بیشتر در مورد تابع استفاده شده:

https://www.php.net/manual/en/function.levenshtein.php


فرض کنیم کاربر عبارت "',ad h\g" یا "'گوشیاپل" مقداری که در متغیر قرار داده میشه چیزی شبیه اینه :

گوشی <--------> 6
موبایل <--------> 7
اپل <--------> 8
لپ تاپ <--------> 9
هواوی <--------> 9
هواوی مد <--------> 10
تبلت <--------> 11
اچ‌پی <--------> 11
هواوی مد اپل <--------> 11
سامسونگ <--------> 12

که هرچه اون عدد کوچتر باشه ، شباهت ش بیشتر هست.

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


امیدوارم استفاده کرده باشید.



سوالی بود در تلگرام بپرسید ...


https://reymit.ir/saeedvir
https://github.com/saeedvir