Я создаю функцию поиска для своего проекта Symfony2 и написал для него SQL следующим образом:
SELECT dlc.title, dlc.description, dlc.keywords
FROM ShoutMainBundle:Dlc dlc
WHERE MATCH (dlc.title, dlc.description, dlc.keywords) AGAINST (":keyword" IN BOOLEAN MODE)
AND dlc.type = (":audio")
ORDER BY dlc.date DESC
Однако, когда я запускаю это в проекте, появляется следующая ошибка:
[Синтаксическая ошибка], строка 0, столбец 96: Ошибка: ожидаемая известная функция, получено 'MATCH'
Есть ли альтернатива, которую я мог бы использовать вместо MATCH
?На данный момент (только для того, чтобы я мог провести базовое тестирование) я использую LIKE, но он не работает слишком хорошо, если для поиска используется более одного слова.
РЕДАКТИРОВАТЬ: Вот как код используется в коде:
$em = $this->getDoctrine()->getEntityManager();
$wckeyword = '%'.$skeyword.'%';
$dlcresult = $em->createQuery('
SELECT dlc.title, dlc.description, dlc.keywords
FROM ShoutMainBundle:Dlc dlc
WHERE MATCH (dlc.title, dlc.description, dlc.keywords) AGAINST (":keyword" IN BOOLEAN MODE)
AND dlc.type = (":audio")
ORDER BY dlc.date DESC'
)->setParameters(array('type' => $stype, 'keyword' => $wckeyword));
$dlcres = $dlcresult->getResult();