Я прочитал, что, чтобы иметь возможность ранжировать поиска Вы можете запросить MySQL так:CakePHP Полнотекстовый поиск MySQL с рейтингом
SELECT * ,
MATCH (title, body) AGAINST ('$search') AS rating
FROM posts
WHERE MATCH (title, body) AGAINST ('$search')
ORDER BY rating DESC
Есть ли способ сделать это в CakePHP 2.X? Кроме того, мне нужно сделать это, одновременно разбивая страницы на страницы. Поэтому я думаю, что мне нужно будет написать условие для paginator, а не прямой запрос.
Благодарим за помощь!
Пожалуйста, смотрите комментарии http://stackoverflow.com/a/20326527/47573, без дополнительной защиты (что не ясно из контекста), это открывает приложение против SQL-инъекций (http://en.wikipedia.org/wiki/SQL_injection). – mark
Возможно, вы захотите рассмотреть возможность создания рейтинга virtualField. Таким образом, он будет находиться внутри вашего массива SearchIndex. * $ this-> SearchIndex-> virtualFields ['rating'] = "MATCH (SearchIndex.data) ПРОТИВ ('". $ q. "')"; * – styks
Пожалуйста, улучшите свой ответ и исправьте SQL-инъекцию –