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

نام تاپیک: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

  1. #1

    سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    سلام دوستان عزیز
    من توی برنامه ام یه بانک اطلاعاتی دارم که حدود 100 هزارتا شرح کالا داره و کاربر بایستی از بین این آیتم ها شرح مورد نظرش را پیدا کنه. از من یه سرچ شبیه گوگل خواستن. فرض کنید آیتم های زیر موجوده و یک text box دارم که کاربر عبارت جستجو را وارد میکنه و تو رویداد textchange اون نتایج را نشون میده.

    1-کابل 8 متری مسی
    2-کابل 16 متری مسی روکش دار آبی رنگ
    3-کابل 16 متری بدون روکش

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

  2. #2
    کاربر دائمی آواتار nunegandom
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    الان اصفهان
    سن
    33
    پست
    828

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    سلام
    با استفاده از entity

    NamdaryDBEntities n = new NamdaryDBEntities();
    tblMain t = new tblMain();
    var query = n.tblMains.SqlQuery(@"select * from tblMain WHERE "+FieldName+" LIKE '%"+textBox1.Text+"%'");

  3. #3

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    بعید میدونم منظورما درست متوجه شده باشید. علی ایحال اینا بگم که سرچ من از لایک استفاده میکنه اما تک کلمه ایه. مثلا اگه کلمه "کابل" را سرچ کنم هرجا کابل داشته باشه را میاره(چه اول، چه وسط و چه آخر). اما من سرچ چند کلمه ای میخوام با این تفاوت که اگه کلمات پشت سر هم نباشن، جستجو نتیجه بده.
    اینم بگم من اصلا از entity استفاده نمیکنم.

  4. #4

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    والا این روشی که میگم کلا تنیکشه وارد مباحث دیتابیسو اینا نمیشم.....ببین شما هر کلمه رو جدا کن (کاری که گوگل میکنه دیدی که ادرسو مثلا این میشه "کابل+ابی" )خوب حالا کلمه اول رو سرچ کن با like هرچی پیدا شد رو نگه دار حالا اون هایی که توشون کلمه لایک بوده رو دوباره با همین روش جستو جو کن (فیلتر کن) نتیجه نهایی میشه اونی که شما میخواین...حالا یه شرط هم باید بزاری(اگه خواستی ) که اگه هیچی پیدا نشد اینطوری هم اونایی رو نشو بده که کابل دارن هم اونایی که ابی دارن(میشه مورد یک و دو) اینم مثل گوگل.....

  5. #5

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    من هیچی نفهمیدم. خجالت هم میکشم نمونه کد بخوام!

  6. #6

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    شاید یکمی بد توضیح دادم....
    شما یه جمله میدی که اینه :"کابل ابی" ... خوب اول اینه بشکون بکن دو کلمه ی "کابل"و"ابی"....حالا با لایک از تو دیتابیس همه اونایی که کلمه ی "کابل" دارن رو بگیر.....جالا بین اینا که کلمه کابل دارن بگرد دنبال اونایی که کلمه ی "ابی " دارن .... نتیجه میمونه مورد دوم.....
    اینو شما اجرا کنین بقیه چیزایی که گفتم احمیت نداره برای کاربردی تر شدن سرچ بود...

  7. #7

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    SELECT * FROM Pempdata WHERE skillset LIKE '%[textBox1.Text]%'

  8. #8
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    سلام
    شما اگه به جای گفتن "تو را خدا!!!!!!!!!!!!!!!!!!!" از دوستانی که جواب دادند تشکر کنید، اونوقت رغبت می کنند بهتر به شما جواب بدهند.

  9. #9

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    نقل قول نوشته شده توسط mamadcity مشاهده تاپیک
    SELECT * FROM Pempdata WHERE skillset LIKE '%[textBox1.Text]%'
    این خوبه ولی کامل شده و همچنین به صورت سی شارپ اینطوریه ؟


    var qu = from p in tblkala
    where p.name.contain("Ebarate Shoma")
    select p;

  10. #10

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    نقل قول نوشته شده توسط code_project مشاهده تاپیک
    سلام دوستان عزیز
    من توی برنامه ام یه بانک اطلاعاتی دارم که حدود 100 هزارتا شرح کالا داره و کاربر بایستی از بین این آیتم ها شرح مورد نظرش را پیدا کنه. از من یه سرچ شبیه گوگل خواستن. فرض کنید آیتم های زیر موجوده و یک text box دارم که کاربر عبارت جستجو را وارد میکنه و تو رویداد textchange اون نتایج را نشون میده.

    1-کابل 8 متری مسی
    2-کابل 16 متری مسی روکش دار آبی رنگ
    3-کابل 16 متری بدون روکش

    حالا میخوام اگه کاربر سرچ کرد "کابل آبی"، سطر دوم توی نتایج جستجو به نمایش در بیاد. چکار باید بکنم؟؟؟
    بفرمایید شما همین چیزی میخواهید.https://barnamenevis.org/showthread.p...A7%DA%A9%D8%B3

  11. #11
    مدیر بخش آواتار مهرداد صفا
    تاریخ عضویت
    تیر 1391
    محل زندگی
    select Country,City From World where Country.Name=IRAN and City.Contains(حضرت معصومه(ع))
    پست
    1,499

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    با سلام.
    برای مرحله اول تمام رکوردهایی که در فیلد note آنها دو کلمه مثلا "کابل" و "آبی" به کار رفته انتخاب می شوند:

    "select * from table where note like '%"+ textBox1.Text.Replace(" ","%")+"%'"

    البته در این متود مواردی شبیه به "...کابل ... آبی ..." یافت خواهند شد و نه "...آبی....کابل...". در هر صورت فعلا این مورد را پیاده کنید تا اگر نیاز بود برای کارایی بیشتر موارد دیگر هم به جستجو اضافه کنیم.
    چشم ظاهر گر نبیند عیب نیست چشم دل گر ننگرد باید گریست
    **********
    اَلسَّلامُ عَلَى الْحُسَيْنِ وَ عَلى عَلِىِّ بْنِ الْحُسَيْنِ وَ عَلى اَوْلادِ الْحُسَيْنِ وَ عَلى اَصْحابِ الْحُسَيْنِ

  12. #12

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    ممنوووون استاد صفای عزیز. اما من سرچ کامل میخوام. دقیقا همون آبی کابل که فرمودین!!! ممنون میشم کمکم کنید. از بقیه دوستان هم خیلی خیلی ممنونم
    آخرین ویرایش به وسیله مهرداد صفا : چهارشنبه 13 شهریور 1392 در 11:52 صبح

  13. #13
    مدیر بخش آواتار مهرداد صفا
    تاریخ عضویت
    تیر 1391
    محل زندگی
    select Country,City From World where Country.Name=IRAN and City.Contains(حضرت معصومه(ع))
    پست
    1,499

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    نقل قول نوشته شده توسط code_project مشاهده تاپیک
    ممنوووون استاد صفای عزیز. اما من سرچ کامل میخوام. دقیقا همون آبی کابل که فرمودین!!! ممنون میشم کمکم کنید. از بقیه دوستان هم خیلی خیلی ممنونم
    خواهش می کنم.
    در این مرحله برای به دست آوردن رکوردهایی که کلمه "کابل" و "آبی" در ستون مثلا Field آنها وجود دارد بدون محدودیت نسبت به مکان و ترتیب کلمات، می توانید متن اصلی را با استفاده از متود Split به کلمات تجزیه کنید و در query قید کنید که تک تک کلمات باید در فیلد مورد نظر وجود داشته باشند. برای این کار می توانید از یک حلقه استفاده کنید. تقریبا به این صورت:

    string query="select * from table where ";
    foreach(string word in text)
    query+="field like '%"+word+' and";
    query=query.SubString(0,query.Length-3);

    و یا:

    var result=MyDataTable.Cast<DataRow>().Where(row=>{
    foreach(string word in text.Split(" "))
    if(!row["field"].ToString().Contains(word))
    return false;
    return true;}).ToArray();
    چشم ظاهر گر نبیند عیب نیست چشم دل گر ننگرد باید گریست
    **********
    اَلسَّلامُ عَلَى الْحُسَيْنِ وَ عَلى عَلِىِّ بْنِ الْحُسَيْنِ وَ عَلى اَوْلادِ الْحُسَيْنِ وَ عَلى اَصْحابِ الْحُسَيْنِ

  14. #14
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: سرچ پیشرفته شبیه سرچ گوگل(یکبار برای همیشه)

    سلام
    بفرمایید این هم نمونه. البته با کمی دستکاری در کد اولیه آقای صفا هم میشه به همین جواب رسید:

    "select * from tb where title like '%" + textBox1.Text.Replace(" ", "%' AND title like '%") + "%'"


    در ضمن بنده به تشکر احتیاج ندارم، اینطوری واسه خودتون بهتره! خیلی قشنگ نیست آدم از کسی تشکر نکنه!

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

  1. منبع برای حل کردن مشکلات (یکبار برای همیشه)
    نوشته شده توسط VB.SOS در بخش مسائل مرتبط با نصب و راه اندازی
    پاسخ: 0
    آخرین پست: پنج شنبه 21 دی 1391, 21:29 عصر
  2. پاسخ: 15
    آخرین پست: دوشنبه 27 آذر 1391, 11:57 صبح
  3. سرچ زنده مثل سرچ گوگل
    نوشته شده توسط mahdieh5 در بخش C#‎‎
    پاسخ: 1
    آخرین پست: پنج شنبه 24 شهریور 1390, 14:47 عصر
  4. پر کردن dataset یکبار برای همیشه
    نوشته شده توسط seeker در بخش VB.NET
    پاسخ: 23
    آخرین پست: سه شنبه 09 بهمن 1386, 00:53 صبح
  5. درخواست توضیح فیلد Lookup یکبار برای همیشه!!!
    نوشته شده توسط kheyri در بخش کامپوننت های سایر شرکت ها، و توسعه کامپوننت
    پاسخ: 0
    آخرین پست: سه شنبه 09 اسفند 1384, 15:31 عصر

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

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