kateb
05-22-2009, 08:16 PM
با سلام
دوستان اس ام اف در جستجو برای کلمات عربی و فارسی مشکلاتی داره که فکر میکنم هنوز حل نشده و من برای حلش یک راهکار دارم امید دارم دوستان این رو به سازندگانش اطلاع بدهند
مشکل سر این کارکترهاست :
آ أ إ ً ٌ ٍ َ ُ ّ ی ي ه ة ک ... هست
مثلا یک جمله را فرض بگیرد مشدد باشه یا با یای و کاف عربی نوشته شده باشه یا مثلا با آ کلا دار یا همزه دار باشه یا اصلا اعراب دار باشه حال کاربر وقتی میخواد جستجو کنه اولا نمیاد به تشدید و علاماتی مانند اعراب و همزه و .. اعتنا بکنه و کلمه رو اینجور بنویسه وقتی هم اینجور ننویسه جستجوش نتیجه ای نمیده !
که خب این خیلی عیب بزرگی محسوب میشه
فکر میکنم دستور جستجو در بانک SMF همون دستور Like باشه که مطمئنا این دستور دقیقا عین کلمه وارد شده رو میگرده و قابلیت نادیده گرفتن برخی کارکتراها مانند تشدید و. رو نداره
اما یک راهکار هست که خیلی میتونه کار امد باشه و دقیقا پیشنهاد من همینه
من بعد از کلی تحقیق به این نتیجه رسیدم باید از دستور RLIKE BINERY استفاده کرد.
مثلا کلمه اعلم برای جستجو را باید به این شکل در آورد :
SELECT *FROM Data WHERE Arabic RLIKE BINARY '.*[آاأإ][ًٌٍَُِّْ~`]*ع[ًٌٍَُِّْ~`]*ل[ًٌٍَُِّْ~`]*م.*'
منتظر پاسخ دوستان هستم
دوستان اس ام اف در جستجو برای کلمات عربی و فارسی مشکلاتی داره که فکر میکنم هنوز حل نشده و من برای حلش یک راهکار دارم امید دارم دوستان این رو به سازندگانش اطلاع بدهند
مشکل سر این کارکترهاست :
آ أ إ ً ٌ ٍ َ ُ ّ ی ي ه ة ک ... هست
مثلا یک جمله را فرض بگیرد مشدد باشه یا با یای و کاف عربی نوشته شده باشه یا مثلا با آ کلا دار یا همزه دار باشه یا اصلا اعراب دار باشه حال کاربر وقتی میخواد جستجو کنه اولا نمیاد به تشدید و علاماتی مانند اعراب و همزه و .. اعتنا بکنه و کلمه رو اینجور بنویسه وقتی هم اینجور ننویسه جستجوش نتیجه ای نمیده !
که خب این خیلی عیب بزرگی محسوب میشه
فکر میکنم دستور جستجو در بانک SMF همون دستور Like باشه که مطمئنا این دستور دقیقا عین کلمه وارد شده رو میگرده و قابلیت نادیده گرفتن برخی کارکتراها مانند تشدید و. رو نداره
اما یک راهکار هست که خیلی میتونه کار امد باشه و دقیقا پیشنهاد من همینه
من بعد از کلی تحقیق به این نتیجه رسیدم باید از دستور RLIKE BINERY استفاده کرد.
مثلا کلمه اعلم برای جستجو را باید به این شکل در آورد :
SELECT *FROM Data WHERE Arabic RLIKE BINARY '.*[آاأإ][ًٌٍَُِّْ~`]*ع[ًٌٍَُِّْ~`]*ل[ًٌٍَُِّْ~`]*م.*'
منتظر پاسخ دوستان هستم