PDA

View Full Version : مشکل جستجوی ی در وبسایت



programmer33
یک شنبه 02 بهمن 1390, 11:50 صبح
سلام
من یک دیتابیس خیلی بزرگ دارم که رکودهای زیادی داره. چون این پایگاه داده مربوط به نرم افزار حسابداری میشه.حالا من اونو به وبسایتم وصل کردم. در جستجوی 'ی' مشکل دارم. میخواستم بدونم تنها راه حل جایگزین کردن 'ی' ها در دیتابیس است. یا راه حل بهینه تری هم وجود دارد .
متشکرم

fakhravari
یک شنبه 02 بهمن 1390, 12:14 عصر
باید حرف N'' را بزاری در همه فیلد ها و بعد فرمت دیتابیس هم باید به

maktab
یک شنبه 02 بهمن 1390, 13:51 عصر
البته sql 2008 فارسی رو هم داره

programmer33
یک شنبه 02 بهمن 1390, 21:49 عصر
ببخشید دیتابیس من روی فعلا هاست
اول باید این تنظیم رو انجام بدم بعد دوباره اسکریپتش رو ببرم روی هاست؟
اینطوری درست می شه؟

fakhravari
دوشنبه 03 بهمن 1390, 15:36 عصر
روی لوکال تست نکردین مگه:متفکر:

mohammad diba
دوشنبه 03 بهمن 1390, 17:15 عصر
من یه پشنهاد دارم و اونم اینکه قبل از ذخیره کاراکتر "ي" رو با "ی" جاگذاری کن و N رو هم قبل جستجو بذار.

saeedgharedaghi
چهارشنبه 05 بهمن 1390, 19:29 عصر
البته sql 2008 فارسی رو هم داره
سلام دوست عزیز ، میشه بگین بابد روی کدوم یکی از گزینه ها کلیک کنم؟ ، آخه چند تا نوع Persian داره

Mostafa_Dindar
چهارشنبه 05 بهمن 1390, 21:08 عصر
سلام دوست عزیز ، میشه بگین بابد روی کدوم یکی از گزینه ها کلیک کنم؟ ، آخه چند تا نوع Persian داره

Collation فارسی برای Sort هست . مورد CI AI که به معنی Case Insensitive and Accent Insensitive را انتخاب کنید . اگر تمامی دیتابیس ی و ک عربی دارد یک راهکار میتواند این باشد که ی و ی ای که کاربر برای جستجو وارد میکند را در همان ابتدا به عربی تبدیل کنید و بعد کوئری رو روی دیتابیس انجام بدید . یا اینکه تمامی ی و ک های دیتابیس را به فارسی تبدیل کنید .
راهکار های متفاوتی برای رفع این مشکل نوشته شده از جمله آقای وحید نصیری پیشتر اسکریپتی نوشته اند که این تبدیل رو در سطح دیتابیس انجام میده ( البته دقت کنید که کوئری ایشون تمامی ی و ک های فارسی رو عربی میکنه که کافیه جای کد اسکی حروف رو حابجا کنید ) . در این حالت لازمه که از اون مرحله به بهد تمامی داده های ورودی که در دیتابیس ذخیره میشوند به یک شکل ی و ک عربی یا فارسی تبدیل بشه و در دیتابیس قرار بگیره که باز هم برای اینکار راهکار های متفاوتی نوشته شده از جمله آقای هاشمی نژاد (http://hasheminezhad.com/fixfarsichars)http module ای نوشته اند که ی و ک های عربی رو به فارسی تبدیل میکنه یا اگر از Entity Framework استفاده میکنید دوباره آقای نصیری راهکاری در این باره در سایتشون دارند که مطالعه اون خالی از لطف نیست . برای این موارد لطفا سایت این دو نفر و جستجو بفرمائید .

samin_s
چهارشنبه 05 بهمن 1390, 22:05 عصر
من این مشکل رو در مرتب سازی بر اساس حروف الفبا داشتم که کالکشن رو به فارسی تغییر دادم :
ALTER TABLE table-name
ALTER COLUMN col1 nvarchar(10) COLLATE Persian_100_CI_AS

fakhravari
چهارشنبه 05 بهمن 1390, 23:43 عصر
با سلام
ایا اشکال حروف عربی در همین 2 کلمه هستند "ك","ي" :متفکر:

programmer33
شنبه 08 بهمن 1390, 18:50 عصر
من مجبور شدم کلیه رکود های درون پایگاه داده ام رو با ی فارسی update کنم و هنگام ذخیره رکورد جدید هم ی فارسی رو با تابع replace سی شارپ جایگزین ی عربی کنم.