PDA

View Full Version : جستجو پیشرفته



Hamed Beyranvand
سه شنبه 05 اسفند 1393, 09:35 صبح
سلام بر مهندسین عزیز و روز همتونم مبارک باشه.
رویه یه پروژه داریم کار می کنیم که قسمت جستجو این سایت اهمیت ویژه داره.یعنی پایه و اساس این پروژه جستجوشه.
حالا یه مشکلی داریم.مثلا اگه کاربر سرچ کنه "استخدام برنامه نویس php با تجربه" چیزی نمایش نمیده!چرا؟؟چون ما از %استخدام برنامه نویس با تجربه% like داریم استفاده می کنیم.
خب حالا ما شاید معادل این متن رو نداشته باشیم ولی برنامه نویس php داریم یا برنامه نویس داریم!
حالا ما چیکار کنیم که اگه یه کلمه از اون متن یا همون کلید واژه مورد جستجو رو داشتیم،در بانک،نتیجه رو نمایش بدیم!!
امیدوارم متوجه شده باشین.ممنون

MMSHFE
سه شنبه 05 اسفند 1393, 10:14 صبح
یا باید از Full Text Search استفاده کنید و یا اینکه با explode برحسب کارکتر Space متن کاربر رو بشکنید و هرکدوم از اون کلمات رو که پیدا کردین، به نتایج اضافه کنید. در نهایت هم با array_unique نتایج تکراری که برای هر کلمه پیدا شدن رو حذف کنید. البته اگه کاربر متنش رو داخل کوتیشن گذاشته باشه، مثل همه موتورهای جستجوی رایج، دیگه نباید متن رو بشکنید و عین همون عبارت رو باید جستجو کنید.

Hamed Beyranvand
سه شنبه 05 اسفند 1393, 10:39 صبح
درسته استاد.ولی جدا کردن بر اساس Space اونم جستجو در چندین جدول بار زیادی روی سرور نمی زاره؟؟؟
فکر کنید جمله بالا شامل سه کلمه که باید به ازای هرکدوم از اون ها یه جستجو در کل جداول انجام بدیم!!
performance برنامه خیلی میاد پایین،نه؟؟؟

MMSHFE
سه شنبه 05 اسفند 1393, 11:06 صبح
نه نمیگذاره. اینقدر از Performance واسه خودتون غول نسازین. سروری که با چهارتا Explode بخواد منفجر بشه بدرد اجرا کردن بازی ماریو هم نمیخوره. همین صفحات تالار برنامه نویس بطور متوسط برای نمایش یک صفحه بالای 30 تا کوئری به دیتابیس میفرستن. Performance رو با مواردی مثل کش و... جبران کنید نه اینکه برنامه نویسی رو برای خودتون به عذاب تبدیل کنید.

Hamed Beyranvand
سه شنبه 05 اسفند 1393, 11:32 صبح
بسیار ممنون