جستجوی فارسی

پرسیده شده
فعالیت 1148 روز پیش
دیده شده 413 بار
1

سلام وادب

برای اینکه جستجو در داده ها یعنی :

WHERE post_title LIKE '%آب پاش%' 

بدون حساسیت روی کاراکتر فاصله انجام بشه یعنی آب پاش با آبپاش تفاوتی برای سرچ نداشته باشه باید چی کار کرد؟

سوال دوم اینه که برای اینکه حرف هایی مثل ‘آ’ و ‘ا’ و یا ‘ی’ و ‘ي’ (عربی) در سرچ با هم تفاوتی نداشته باشند چه کار باید بکنیم؟

الگوریتمی برای این کار وجود داره؟ این کار باید در هنگام ارسال کوئری باشه (منظورم در php) و یا اینکه در کوئری باید نکاتی رو رعایت کنیم؟

فایل پیوست

3
حذف شده

سلام

برای مورد الی که گفتید می تونید تمامی space ها رو با علامت % در کیورد سرچ شده replace کنید. مثال:

$keyword = 'آب پاش';
$keyword_search_str = str_replace(' ','%',$keyword);
// بعد توی کوئری استفاده کنید
// "WHERE post_title LIKE '%$keyword_search_str%' "

در مورد بخش دوم سوالتون هم می تونید در هنگام ذخیره متن ها در پایگاه داده اونهارو استاندارد سازینکید. مثلا همه ‘ي’ (عربی) ها رو یه ی فارسی تبدیل کنید و در دیتابیس ذخیره کنید. در زمان سرچ و برای کیورد هم همین کار رو انجام بدید

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

فایل پیوست

لقمان آوند

توسط

لقمان آوند

24 اسفند 99

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