08-11-2010, 08:59
|
|
|
חבר מתאריך: 14.08.10
הודעות: 107
|
|
full text search - חיפוש ביותר מעמודה אחת?
שלום,
אני מכין אינדקס קבצים ומעוניין לבצע חיפוש בעזרת full text search.
החיפוש צריך להתבצע בכותרת הקובץ ותיאור הקובץ (לחוד וביחד).
הטבלה:
קוד PHP:
CREATE TABLE `download_files` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` text NOT NULL, `description` text NOT NULL, `rating` int(11) NOT NULL DEFAULT '0', `rated_by` int(11) NOT NULL DEFAULT '0', `downloads` int(11) NOT NULL DEFAULT '0', `category` int(11) NOT NULL, `filesize` int(11) NOT NULL, `pinned` tinyint(1) NOT NULL DEFAULT '0', `added_by` int(11) NOT NULL, `active` tinyint(1) NOT NULL DEFAULT '0', `image` text NOT NULL, `time` text NOT NULL, `file` text NOT NULL, PRIMARY KEY (`id`), FULLTEXT KEY `description` (`description`), FULLTEXT KEY `name` (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
חיפוש בתיאור ובכותרת לחוד עובד מעולה:
קוד PHP:
SELECT *, MATCH(`description`) AGAINST ('גכגכ') AS relevancy FROM `download_files` WHERE MATCH(`description`) AGAINST ('גכגכ') ORDER BY `relevancy` DESC
קוד PHP:
SELECT *, MATCH(`name`) AGAINST ('גכגכ') AS relevancy FROM `download_files` WHERE MATCH(`name`) AGAINST ('גכגכ') ORDER BY `relevancy` DESC
אבל חיפוש ב2 העמודות במקביל מחזיר שגיאה
#1191 - Can't find FULLTEXT index matching the column list
קוד PHP:
SELECT *, MATCH(`name`,`description`) AGAINST ('גכגכ') AS relevancy FROM `download_files` WHERE MATCH(`name`,`description`) AGAINST ('גכגכ') ORDER BY `relevancy` DESC
חשבתי ליצור אינדקס נוסף ולתת לו שם נניח both שיכלול גם את name וגם את description אבל אני לא בטוח שזו הדרך הכי יעילה..
אז מהי הדרך הטובה ביותר ואיך ניתן לסדר את הבעייה?
תודה
|