$res_search = $paginator -> countQuery("SELECT `id`, `cat`, `title`, `description`, `view`, `author`, `date`, `mini_img`
FROM `".PV_DBPREFIX."data`
WHERE
MATCH (text) AGAINST ('$search') OR
MATCH (title) AGAINST ('$search') OR
MATCH (description) AGAINST ('$search')");
Честно скажу, с конструкцией MATCH...AGAINST столкнулся впервые.
Данный запрос работает, но есть некоторые нюансы, которые меня не устраивают.
Вот например:
Есть в тексте слово "визуального". Набираю в поиск "визуального" - и скрипт все прекрасно находит. Но если я набираю слово "визуал"(или т.п.), то скрипт уже не находит инфу, которая содержит слово "визуального".
Как мне это исправить. Я имею ввиду с конструкцией MATCH...AGAINST. Или же через LIKE лучше?
Спустя 6 минут, 55 секунд (6.08.2011 - 14:36) Winston написал(а):
Цитата (foxiSfox @ 6.08.2011 - 14:29) |
MATCH...AGAINST |
Сравнивает строки целиком.
Попробуй так переписать
$res_search = $paginator -> countQuery("SELECT `id`, `cat`, `title`, `description`, `view`, `author`, `date`, `mini_img`
FROM `".PV_DBPREFIX."data`
WHERE
MATCH (`text`) AGAINST ('".$search."') OR
MATCH (`title`) AGAINST ('".$search.") OR
MATCH (`description`) AGAINST ('$search') OR
`title` LIKE '%".$search."%'");
Спустя 1 час, 23 минуты, 21 секунда (6.08.2011 - 15:59) jetistyum написал(а):
Полнотекстовый поиск тем и лучше, что его можно лучше кастомизировать.
http://mysql.ru/docs/man/Fulltext_Search.html
http://mysql.ru/docs/man/Fulltext_Search.html