View Full Version : سوال: راهنمایی برای نوشتن جستجوی پیشرفته
ebiramgs
شنبه 25 بهمن 1393, 15:05 عصر
سلام
من یه پروژه mvc شخصی دارم، میخوام برای محصولاتم جستجوی پیشرفته طراحی کنم. یه مدل برای محصولات دارم و یه مدل برای مشخصات محصول. میخوام بر اساس مشخصات محصولاتم جستجو انجام بدم. چیزی مثل mobile.ir (http://www.mobile.ir/phones/finder.aspx).
خواستم از شرط برای هر حالت جستجو استفاده کنم دیدم اگه بخوام اینطوری کار کنم حدود 2000 شرط باید تعریف کنم که درست نیست. فکر می کنم جستجو باید به صورت مرحله به مرحله باشه یعنی اول محصولاتی که مشخصه 1 رو دارن جستجو بشن بعد محصولاتی که مشخصه 2 رو دارن از نتایج مرحله قبلی جستجو بشن؟!!!
لازمه بگم تعداد محصولات زیاده و تعداد مشخصه ها هم نزدیک 200 تا برای هر محصوله.
ممنون میشم بفرمایید بهترین روش برای انجام این نوع جستجو چی هست؟
و اگه روش جستجوی مرحله به مرحله درسته از چه روشی باید پیاده سازی بشه؟
با تشکر...
sunn789
شنبه 25 بهمن 1393, 15:52 عصر
دوست عزیز اینکه بتونید توی دریافتی Index ورودی ها رو بگیری ، حال روش گرفتن اطلاعات ورودی رو چیزی به ذهنم نمیرسه اما مهمتر از همه اینکه اگر بتونی stored procedure این مار رو انجام بدی بهترین راه حله در ضمن در واکشی باید حداقل اطلاعات رو از بانک واکشی کنی و SP رو به نحوی بهینه کنی که کمترین فشار رو به سرور sql وارد کنه.
ebiramgs
شنبه 25 بهمن 1393, 16:12 عصر
ممنون.
مشکل من همین روش گرفتن اطلاعات ورودیه. البته اگه روش جستجوی مرحله به مرحله درست باشه.
اینکه فرمودید "باید حداقل اطلاعات رو از بانک واکشی کنی" به نظرم با جستجوی مرحله به مرحله میشه مدیریتش کرد. فقط اینکه چطوری اطلاعاتو بگیرم که جایگزین قبلی ها نشه رو نمیدونم...
sunn789
شنبه 25 بهمن 1393, 16:18 عصر
اینکه میگین مرحله به مرحله رو نمیدونم چند وقت قبل یه نرم افزار ی رو دیدم ، ایتدا تمامی اطلاعات(نزدیک 5000 رکورد) رو که مثلاً فقط یک شرط داشت رو از بانک بیرون میکشید و دوباره سمت کلاینت با استفاده از کد نویسی اصلاح میکرد و توی همین قسمت دوباره فیلتر میکرد که شاید 10 دقیقه توی یک نرم افزار ویندوزی وقت میگرفت ، سعی کنید یه بار اطلاعات رو بیشتر به بانک نفرستید و اطلاعات رو به صورت پارامتر به SP پاس بدین و بگذارید خود sql مدیریت کنه نه با کد نویسی که زمان بر خواهد بود.میتونید مانند یک جستجوی ساده هر چند پارامتر را از وییوو به کنترا ارسال کنید.
mohammadreza.najafipour
شنبه 25 بهمن 1393, 20:12 عصر
برای جستجو یه کتابخونه ی خوب هستش به اسم Lucene.Net که لینک یه مثالش رو پایین گذاشتم، خودم هم هنوز باهاش کار نکردم ولی به زودی میرم دنبالش. تعریفش رو زیاد شنیدم:
لینک مثال (http://www.dotnettips.info/Post/1081/%D9%86%D8%AD%D9%88%D9%87-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-auto-complete-%D8%A8%D9%87-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%DB%8C-%D9%84%D9%88%D8%B3%DB%8C%D9%86-%D8%AF%D8%B1-asp-net-mvc-%D9%88-web-forms)
ebiramgs
یک شنبه 26 بهمن 1393, 07:12 صبح
ممنون دوست عزیز. لوسین که شما فرمودید فکر می کنم برای جستجوی متن باشه. اینجا هدف من فیلتر کردن نتایجه
sunn789
یک شنبه 26 بهمن 1393, 07:24 صبح
با این حال شما باید از طریق ورودی ها اطلاعات رو به اکشن پاس بدین اما یه جسجو کنید ببینید temptable توی sql به کار شما میاد ؟
میدونم باید اطلاعات رو از بانک بیرون بکشید و به ازای هر ورودی یک پارامتر sql پاس بدین .
ebiramgs
یک شنبه 26 بهمن 1393, 08:44 صبح
ممنون دوست عزیز
فکر کنم با temptable که فرمودید بشه یه کارایی کرد. البته من تازه کارم تازه فهمیدم temptable چیه!!!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.