PDA

View Full Version : سوال: جستجو در کل سایت



uosefuosef
سه شنبه 02 تیر 1394, 02:25 صبح
:ناراحت::ناراحت::ناراحت::نار حت:
سلام دوستان.
میخوام توی کل دیتابیسم جستجو کنم { مثلا قسمت سرچ برای سایت } چطوری میتونم این کار رو انجام بدم ؟؟
دوستان لطفا کمک کنین.
با php و sql کار میکنم.

H:Shojaei
سه شنبه 02 تیر 1394, 03:59 صبح
یا استفاده از sqlDump (http://lookalive.co.uk/blog/searching-entire-database-string-mysqldump-and-grep)...
یا جدول information_schema رو بگیرید و بر اساس اون جستجو کنید فیلدهایی رو که میخواید...
یا هم که تمام جداول رو اون فیلدهایی که میخواید رو درونشون جستجو کنید و جداول رو به انتهای یکدیگه اضافه کنید و خروجی رو نمایش بدین...(این مورد رو از خودم گفتم سادس و سنگین)

uosefuosef
سه شنبه 02 تیر 1394, 12:51 عصر
یا استفاده از sqlDump (http://lookalive.co.uk/blog/searching-entire-database-string-mysqldump-and-grep)...
یا جدول information_schema رو بگیرید و بر اساس اون جستجو کنید فیلدهایی رو که میخواید...
یا هم که تمام جداول رو اون فیلدهایی که میخواید رو درونشون جستجو کنید و جداول رو به انتهای یکدیگه اضافه کنید و خروجی رو نمایش بدین...(این مورد رو از خودم گفتم سادس و سنگین)

ممنون از کمکتون.
من هر چی تو نت سرچ کردم نتونستم چیزی پیدا کنم که به دردم بخوره.
میشه بگین از information_schema چطوری استفاده کنم ؟؟؟
راه حل سومی که گفتین فک میکنم کار جالبی نیست حداقل واسه من جالب نیست چون اطلاعاتی که باید جستجو بشه زیاده.
و اینکه sqldump هم برای بک آپ گیریه نمیدونم واسه این کاری که من میخوام انجام بدم و جستجو توی دیتابیس چطوری ازش استفاده کنم ؟؟ یا اصا میشه استفاده کرد ؟؟؟؟
ممنون میشم توضیح بدین.
:لبخندساده::لبخندساده::لبخن ساده:

-سیّد-
سه شنبه 02 تیر 1394, 21:47 عصر
سلام
سؤالتون یه کم مبهمه. یعنی می‌خواین قابلیت جستجو در کل پایگاه داده رو توی سایت اضافه کنین و در اختیار کاربر قرار بدین؟ یا خودتون می‌خواین توی کل پایگاه داده‌تون جستجو کنین و ربطی به سایتتون و کاربراتون نداره؟
به طور کلی توی یه پایگاه داده، می‌تونین با دستور زیر توی یه ستون یه جدول جستجو کنین:
SELECT x FROM y WHERE z LIKE '%salam%'
این ساده‌ترین نوع جستجو هست. اگه می‌خواین یه مقدار دقیق‌تر و پیچیده‌تر و با قابلیت انعطاف بیشتر جستجو کنین، می‌تونین از قابلیت Full Text Search استفاده کنین:
https://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html
یه مثال ساده:
SELECT * FROM t WHERE MATCH(x, y) AGAINST('salam' IN BOOLEAN MODE)

در نهایت این که جستجوی داخل MySql به شما قابلیت کنترل زیادی روی نحوه‌ی جستجو نمی‌ده. اگه می‌خواین خیلی ژانگولر در بیارین، می‌تونین از برنامه‌های مخصوص این کار مثل Lucene (که یه کتابخونه هست، و Solr و ElasticSearch معروف‌ترین موتورهای جستجوی متن باز نوشته شده بر اساس اون هستن) یا Sphinx استفاده کنین.

این موارد آخر بیشتر برای حالت اولی به کار میاد، یعنی بخواین قابلیت جستجو رو توی سایت به کاربر ارائه بدین. چون هم سرعتشون به مراتب بیشتر از FTS هست، و هم کنترل خیلی بیشتری به شما می‌دن.

uosefuosef
چهارشنبه 03 تیر 1394, 01:26 صبح
سلام
سؤالتون یه کم مبهمه. یعنی می‌خواین قابلیت جستجو در کل پایگاه داده رو توی سایت اضافه کنین و در اختیار کاربر قرار بدین؟ یا خودتون می‌خواین توی کل پایگاه داده‌تون جستجو کنین و ربطی به سایتتون و کاربراتون نداره؟
به طور کلی توی یه پایگاه داده، می‌تونین با دستور زیر توی یه ستون یه جدول جستجو کنین:
SELECT x FROM y WHERE z LIKE '%salam%'
این ساده‌ترین نوع جستجو هست. اگه می‌خواین یه مقدار دقیق‌تر و پیچیده‌تر و با قابلیت انعطاف بیشتر جستجو کنین، می‌تونین از قابلیت Full Text Search استفاده کنین:
https://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html
یه مثال ساده:
SELECT * FROM t WHERE MATCH(x, y) AGAINST('salam' IN BOOLEAN MODE)

در نهایت این که جستجوی داخل MySql به شما قابلیت کنترل زیادی روی نحوه‌ی جستجو نمی‌ده. اگه می‌خواین خیلی ژانگولر در بیارین، می‌تونین از برنامه‌های مخصوص این کار مثل Lucene (که یه کتابخونه هست، و Solr و ElasticSearch معروف‌ترین موتورهای جستجوی متن باز نوشته شده بر اساس اون هستن) یا Sphinx استفاده کنین.

این موارد آخر بیشتر برای حالت اولی به کار میاد، یعنی بخواین قابلیت جستجو رو توی سایت به کاربر ارائه بدین. چون هم سرعتشون به مراتب بیشتر از FTS هست، و هم کنترل خیلی بیشتری به شما می‌دن.

سلام.
ممنون از راهنمایی تون.
این که گفتین سوالتون مبهمه من منظورم داشتن یه سرچ باکس توی سایت برای کاربرانه.
مث همین سرچ باکسی که توی همین سایت برنامه نویس هست. { گوشه بالا سمت چپ }.