نمایش نتایج 1 تا 2 از 2

نام تاپیک: مشکل با fulltext-search در سمت اپلیکیشن

  1. #1
    کاربر دائمی آواتار aminaltavista
    تاریخ عضویت
    تیر 1389
    محل زندگی
    شیراز
    سن
    31
    پست
    432

    مشکل با fulltext-search در سمت اپلیکیشن

    سلام خدمت دوستان برنامه نویسم
    امروز متوجه یه مشکل اساسی تو برنامم شدم که با بررسی SP سمت دیتابیس متوجه عدم صحت عملکرد تنها در سمت برنامه شدم اونم اینه که من از ماژول fulltext search , دستور contains تو stored procedure استفاده کردم(به جهت پرفورمنس و io کمتر)
    وقتی میخوام یه عبارت رو سرچ کنم برای مثال وب مانی باید به این صورت به اس پی پاسش بدم: وب NEAR مانی
    اما این تو سمت برنامه اصلا جوابگو نیس ، علارغم اینکه من BREAK POINT میزنم و پارامتر رو چک میکنم میبینم که همینه اما جوابی نمیگیریم اما اگه همینو مستقیم تو محیط کوئری امتحان کنم جواب میده.
    من برای ارتباط با دیتابیس فیلد هام رو به صورت SQLParameter در آوردم و پارامترها رو به اس پی پاس میدم
    ممنون از اینکه منو راهنمایی میکنید

  2. #2
    کاربر دائمی آواتار aminaltavista
    تاریخ عضویت
    تیر 1389
    محل زندگی
    شیراز
    سن
    31
    پست
    432

    نقل قول: مشکل با fulltext-search در سمت اپلیکیشن

    علارغم اینکه علت اجرای موفقیت آمیز دستور رو تنها در سمت sql رو متوجه نشدم اما مشکل رو با تحقیق و شکست و خطای بسیار زیاد تونستم حل کنم و برا دوستانی که خواهان دانش هستن به اشتراک میزارم!

    دوستان باید به چند تا نکته توجه کنن که در ابتدا چنانچه خواهان استفاده از full-text index باشن در همون ابتدای کار قابلیت رو راه اندازی کنن و قبل از ورود هر چیزی زیر ساخت رو پیاده کنن. همچنین باید مد نظر داشته باشید که با rebuild کردن full text catalogue (که در واقع نقش یه container و ظرف برای ایندکسها هست) اتفاق خاصی نمی افته و همون نتایج قبلی رو بر میگردونه . لازمه بدونید من حدود 20 رکورد تستی داشتم که حتی پس از rebuild کردن هیچ اتفاقی نیفتاد و این تکنولوژی تنها رکوردهایی رو میشناخت که پس از ایجاد و فعال کردن قابلیت درج کرده بودم.(نفهمیدم چرا) پس با بازنویسی رکوردهام (تو محیط design یا گرافیکی به صورت دستی) نتیجه مورد نظرم رو گرفتم.

    نکته بعدی از جمله نکات مهمی هست که باید هنگام درج دیتا تو جدول و واکشی از جدول رعایت کنید:
    برای مثال مسترکارت با مستر کارت متفاوته پس اگه مسترکارت سیو شده باشه و انتظار واکشی مستر کارت رو داشته باشین با خطا مواجه میشید چون دوعبارت جدا از هم هستن و مسترکارت به تنهایی یه عبارته و مستر یه عبارت و کارت یه عبارت دیگه هست پس نیاز به جدا سازی با NEAR یا AND رو داره (مستر NEAR کارت) و اگه مستر کارت رو تنها جستجو کنید با خطا مواجه میشید.
    به عبارتی مسترکارت باید فقط 8 طول داشته باشه .
    عباراتی که پس از حروف ر،و،ا،ز،د،ذ نوشته میشن باید بدون فاصله در کنار هم قرار بگیرن مثل مسترکارت
    اما عباراتی که غیر از کلمات فوق باشن باید با یک فاصله (space) در کنار هم قرار بگیرن مانند وب مانی
    این نکات باید در هنگام درج عبارت تو جدول و حتی عبارتی که در کادر جستجو وارد میشه پشت پرده چک و تنظیم کنید
    شاید بپرسید که چطور میشه کاربر رو مطلع کرد ؟ در پاسخ باید بگم تا حد بسیار زیادی رو میشه با کد کنترل کرد من دستورات لازم رو نوشتم و بارها مورد آزمون و خطا قرارش دادم (در صورت رعایت این نکته تا حد چشم گیری خطا کاهش پیدا میکنه)!
    با فرض اینکه متد قراره یه لیست نام رو بر حسب جستجو از جدولی واکشی کنه:

    public static IEnumerable<string> get(string name)
    {
    RegexOptions options = RegexOptions.None;
    Regex regex = new Regex("[ ]{2,}", options);
    name = regex.Replace(name.Trim(), " ");

    char[] ch = new char[] { 'ا', 'و', 'د', 'ر', 'ز' };

    for (int j = 0; j < name.Length; j++)
    {
    for (int i = 0; i < ch.Length; i++)
    {
    try
    {
    char c = Char.Parse(name.Substring(name.IndexOf(" ") - 1, 1));
    if (c.Equals(ch[i]))
    {
    name = name.Replace(" ", "");
    }
    }
    catch { }
    }
    }
    name = name.Replace(" ", " NEAR ");
    SqlParameter sq = new SqlParameter()
    {
    SqlDbType = System.Data.SqlDbType.NVarChar,
    SqlValue = name,
    ParameterName = "N"
    };
    return
    model.Database.SqlQuery<string>
    ("select Name from tbExpressions where CONTAINS(Name,@N)",sq).ToList();

    }
    آخرین ویرایش به وسیله aminaltavista : چهارشنبه 21 شهریور 1397 در 22:30 عصر

تاپیک های مشابه

  1. مشکل با fulltext در php
    نوشته شده توسط bluefox در بخش PHP
    پاسخ: 3
    آخرین پست: شنبه 03 تیر 1391, 17:11 عصر
  2. مشکل با fulltext search
    نوشته شده توسط abi_sarab در بخش SQL Server
    پاسخ: 2
    آخرین پست: یک شنبه 24 آذر 1387, 21:46 عصر
  3. مشکل با ضخامت خط در چاپ گزارش Quick Report
    نوشته شده توسط v_shalchian در بخش برنامه نویسی در Delphi
    پاسخ: 0
    آخرین پست: یک شنبه 17 آبان 1383, 23:27 عصر
  4. مشکل با ارتباطات Access در دلفی
    نوشته شده توسط Mbr در بخش برنامه نویسی در Delphi
    پاسخ: 1
    آخرین پست: شنبه 17 مرداد 1383, 12:22 عصر
  5. مشکل با فونت فارسی در ویندوز 2000
    نوشته شده توسط Andy در بخش Foxpro
    پاسخ: 3
    آخرین پست: دوشنبه 26 آبان 1382, 13:11 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

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