如何使用 joomla 对象构建全文搜索查询。我一直在尝试,但它不起作用
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$query->select('*');
$query->from('#__unis_subjects AS s');
$query->join('', '#__unis AS u ON s.university = u.id');
$query->join('', '#__unis_faculties AS f ON f.id = s.faculty');
$query->where('MATCH (s.subject) AGAINST ("' . $query . '")');
if (!$db->query()) {
throw new Exception($db->getErrorMsg());
}
$data = $db->loadObjectList();
var_dump($query);
结果输出模板配置参数
最佳答案
您的表必须使用 ENGINE = MyISAM(不是 InnoDB)设置,并且您要搜索的列必须设置为 FULLTEXT 索引。
您可以通过“SQL”选项卡在 phpMyAdmin 中轻松地将您的表设置为 MyISAM...
ALTER TABLE `tablename` ENGINE=MYISAM;
在 Joomla 2.5+(也可能是 3+)中,在我的查询中作为我使用的 where 子句......
->where('MATCH ('.$db->quoteName('columnname').') AGAINST ('.$db->quote($words_or_phrase_to_search_for).')');
进一步的测试是有序的,但到目前为止它似乎按预期工作。
关于mysql - joomla 中的全文查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17933830/