• پایان فعالیت بخشهای انجمن: امکان ایجاد موضوع یا نوشته جدید برای عموم کاربران غیرفعال شده است

مشکل در جستجو کلماتی که در آنها از حرف ی بکار رفته است

esf-kh

کاربر تازه وارد
تاریخ عضویت
20 ژوئن 2006
نوشته‌ها
23
لایک‌ها
0
با درود . من با asp کلاسیک و بانک اطلاعاتی اکسس 2003 یک search ساختم . همه چیز خوب کار می‌کنه فقط یک مشکل وجود داره . اونهم اینکه این سرچ نمی‌تونه کلماتی که در اونها ی بکار رفته رو پیدا کنه . مثلا کلمه کامپیوتر به خاطر حرف ی داخل اون جستجو نمی شه . اگه اینجوری تایپ کنم : ک ، کا ، کام ، کامپ کلمه کامپیوتر رو پیدا می‌کنه ولی اگه به صورت‌های زیر جستجو کنم : کامپی ، کامپیو ، کامپیوت ، کامپیوتر چیزی پیدا نمی شه . من انکدینگ رو دقیق تنظیم کردم .
کد:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Session.CodePage = 65001%>

و انکدینگ به صورت زیر هست

کد:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

این انکدینگ رو هم تو صفحه فرم و هم تو صفحه process جستجو لحاظ کردم ولی باز هم نتیجه برای ی مایوس کننده هست . بنظ میا که مشکل برای تفاوت بین ی فارسی و عربی باشه ولی آیا کسی می تونه ره حلی بده ؟ من حتی با استفاده از برنامه character map ویندوز ی عربی و حتی فارسی رو هم وارد کردم ولی بازم جواب نگرفتم . لطفا راهنمایی فرمایید . سپاسگزارم
 

mosyhey1

Registered User
تاریخ عضویت
27 جولای 2005
نوشته‌ها
225
لایک‌ها
4
به نظر من ابتدا در متنی که جستجو می شود هر چه ی یا ي است را پیدا کن و یک بار آن کلمه را با ی و یک بار با ي جستجو کن و همه نتایج را نشان بده.
اگر کسی کلمه دی را جستجو کرد شما برنامه را جوری بنویس که هم دی و هم دي را بگردد.
 

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
این راهی که دوستمون گفت میشه...
میشه هم که شما وقتی میخوای دیتا رو ذخیره کنی همه ی "ی" ها رو به یه نوع(عربی یا فارسی) تبدیل کنی و موقع سرچ هم همه ی "ی" های کلمه رو به همون نوع "ی" تبدیل کنی که دیگه مشکلی پیدا نشه.البته یادمه من یه همچین مشکلی با کلمه "ک" هم داشتم که واسه اون هم همین کار رو میکردم
 

esf-kh

کاربر تازه وارد
تاریخ عضویت
20 ژوئن 2006
نوشته‌ها
23
لایک‌ها
0
این راهی که دوستمون گفت میشه...
میشه هم که شما وقتی میخوای دیتا رو ذخیره کنی همه ی "ی" ها رو به یه نوع(عربی یا فارسی) تبدیل کنی و موقع سرچ هم همه ی "ی" های کلمه رو به همون نوع "ی" تبدیل کنی که دیگه مشکلی پیدا نشه.البته یادمه من یه همچین مشکلی با کلمه "ک" هم داشتم که واسه اون هم همین کار رو میکردم

از شما سپاسگزارم . در تاپیک زیر

کد:
http://forum.persiantools.com/t68272-page7.html

شما یک کد رو با جاوا اسکریپت دادید که فکر کنم مشکل رو حل بکنه . فقط سوالی که می‌مونه اینه که من موقع insert کردن دیتا و هم جستجوی آن باید این تبدیل رو انجام بدم یا اینکه نه موقع جستجو تبدیل ی فارسی به عربی و یا برعکس کافیه ؟ در ضمن من با هر دو نوع ی امتحان کردم جواب نداد . یعنی ی نقطه دار و بدون نقطه . بنظر شما این مشکل از جای دیگه می‌تونه سرچشمه بگیره ؟
 

esf-kh

کاربر تازه وارد
تاریخ عضویت
20 ژوئن 2006
نوشته‌ها
23
لایک‌ها
0
من با جاوا اسکریپت ی عربی رو جانشین ی فارسی کردم و مستقیما تو دیتابیس ی عربی رو وارد کردم . سرچ الان ی عربی رو پیدا کرد . حالا سوال اینجاست که ی رو که در حالت عادی وارد فیلد سرچ میکنم بدون نقطه هستش و اونی که قبلا تو دیتابیس بود نیز بدون نقطه هست و از لحاظ ظاهری هیچ فرقی با هم ندارن . چرا بین این دوتا ی تفاوت به وجود میاد ؟ چرا وقتی من ی نقطه دار رو وارد دیتابیس می‌کنم و ی نقطه دار رو وارد فیلد سرچ می‌کنم ( بدون کد replace) باز هم سرچ کار نمی‌کنه و ی های نقطه دار رو پیدا نمی‌کنه ؟ در ضمن من نمی‌خام ی های داخل دیتابیس رو تبدیل به ی عربی کنم بلکه می‌خام ی بدون نقطه باشه . بنظر شما راهی برای حل این مشکل وجود داره ؟
 

esf-kh

کاربر تازه وارد
تاریخ عضویت
20 ژوئن 2006
نوشته‌ها
23
لایک‌ها
0
دوستان اگه ممکنه یه مقدار بیشتر توضیح بدن .
 

m3hrz4d

Registered User
تاریخ عضویت
21 سپتامبر 2005
نوشته‌ها
620
لایک‌ها
1
محل سکونت
اصفهان
از شما سپاسگزارم . در تاپیک زیر

کد:
http://forum.persiantools.com/t68272-page7.html

شما یک کد رو با جاوا اسکریپت دادید که فکر کنم مشکل رو حل بکنه . فقط سوالی که می‌مونه اینه که من موقع insert کردن دیتا و هم جستجوی آن باید این تبدیل رو انجام بدم یا اینکه نه موقع جستجو تبدیل ی فارسی به عربی و یا برعکس کافیه ؟ در ضمن من با هر دو نوع ی امتحان کردم جواب نداد . یعنی ی نقطه دار و بدون نقطه . بنظر شما این مشکل از جای دیگه می‌تونه سرچشمه بگیره ؟

برای اینکه مشکلی پیش نیاد هر موقع که یوزر دیتایی رو وارد میکنه و قراره یا insert و یا search بشه توی اون دیتا همه ی "ی" ها رو به یک نوع تبدیل کنین چون ممکنه یوزر یه جا برای ورود دیتا "ی" ی فارسی بزنه ولی برای سرچ کردن "ی" ی عربی.البته کدی که توی اون تاپیک گذشتم جاوا اسکریپت بود ولی بهتره این عمل replace سمت سرور انجام بشه.
--
پ.ن اون پست ِ بدی رو هم درست متوجه نشدم
 

fivestar

Registered User
تاریخ عضویت
14 نوامبر 2006
نوشته‌ها
73
لایک‌ها
0
بهتره این عمل replace سمت سرور انجام بشه.
--


من هم دقیقا همین مشکل رو دارم. یعنی میخوام

در حین INSESRT کردن "ی" فارسی به "ی" عربی تبدیل شه و تو دیتا بیس ذخیره شه.


چون تو سرچ با "ی" های عربی مشکلی ندارم. مثلا :


فیلد NAME تو رکورد 1 مقدار "مرادی" داره.

فیلد NAME تو رکورد 2 مقدار "مرادي" داره.

وقتی که کلمه "مرادی" یا "مرادي" رو سرچ می کنم فقط رکورد 2 رو تو خروجی دارم.


مشکل اینجاست که چه کدی میخواد تا این عمل جابجایی سمت سرور انجام شه ؟ تابع خاصی داره ؟؟
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
از متد replase اه string ها استفاده کنید ! در ضمن این بحث بار چندمه که توی این انجمن مطرح میشه بابا سرچ کردنم ثواب داره ها !
 

Graveworm

Registered User
تاریخ عضویت
23 می 2005
نوشته‌ها
1,071
لایک‌ها
12
محل سکونت
Tehran
از متد replase اه string ها استفاده کنید ! در ضمن این بحث بار چندمه که توی این انجمن مطرح میشه بابا سرچ کردنم ثواب داره ها !
حرس نخور :دی
تا بوده، همین بوده
 

fivestar

Registered User
تاریخ عضویت
14 نوامبر 2006
نوشته‌ها
73
لایک‌ها
0
من جواب رو پیدا کردم . شاید به درد یکی دیگه هم بخوره

برای تبدیل کردن "ی" فارسی به "ی" عربی برای INSERT کردن تو جدول یا خواندن کلمه برای SEARCH

کد:
string find = "مرادی" ;
string find_convert = find.Replace('ي','ی') ;

وقتی کاربر می خواد کلمه "مرادی" رو ذخیره کنه به شکل "مرادي" تو جدول ذخیره میشه .

برای سرچ کردن هم اگه بخواد "مرادی" رو پیدا کنه خیلی راحت میتونه "مرادي" رو تو خروجی ببینه !

ولی سوالی که مطرح میشه اینه که اگه کاربر بخواد دنبال "ی" فارسی بگرده چطور میشه تو جستجو پیداش کرد ؟؟
 
بالا