PDA

View Full Version : چطور جستجوی فارسی را بهینه کنیم؟



arshia_
چهارشنبه 11 آذر 1383, 17:30 عصر
یکی از مشکلاتی که برای جستجو در بانکها پیش میاد زبان فارسی و کدپیچ فارسی است...
مثلا فرض کنیم در جدول عبارت "سیم پیچ" داشته باشیم
اگر دستور select را با شرط فیلد برابر =س استفده کنیم این مورد پیدا می شود ولی بعضی وقتها نتیجه مطلوب بدست نمی آید ...مثلا وقتی بخواهیم
شرط جستجو =سیم پی باشد
در برخی موارد چون سیم داراری حرف ی است که حرف یی کوچک و بزرگ کدهای متفاوت دارند( و سایر حرفها برای مثال) نتایج دقیق نیست و این برای گزارش گیری یک عیب بزرگ است...
آیا روش استانداردی برای این کار وجود دارد...چون در کتابهایی که من مطالعه کردیم در مورد جستجوی فارسی توضیحی داده نشده و همه بر مبنای انگلیسی هستند
ساده ترین کدی که من بکار می برم به قرار زیر است:
select *from testbank where (name like N'%test%') <-------for example
در صورت امکان راهنمایی فرمایید ...
با تشکر از دوستان
:flower:

AminSobati
چهارشنبه 11 آذر 1383, 21:25 عصر
دوست عزیزم،
به لطف وجود یونیکد، الان کمتر این مشکل پیش میاد. مثلا اگر اطلاعات شما در xp وارد SQL Server شده باشند، نباید این مشکل رو داشته باشید. ولی به هر حال نباید استثناها رو نادیده گرفت.
اگر اطلاعاتی دارید که از طریق ویندوزهای مختلف جمع آوری شدن، بهتره با نوشتن یک تابع، این نوع کاراکترها رو با کاراکتر استاندارد مورد نظرتون عوض کنین تا جستجوی شما دقیق عمل کنه.
در مورد استفاده از Like، این روش برای متنهای کوچک شاید خوب باشه، اما در حجم اطلاعات زیاد، یا متنهای طولانی، این روش به شدت ضعف خواهد داشت. برای این نوع جستجو، حتما از امکانات Full-Text Search استفاده کنین.
موفق باشید