joomla中的全文查询

时间:2013-07-29 20:43:54

标签: mysql full-text-search joomla3.1

如何使用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);

结果输出模板配置参数

2 个答案:

答案 0 :(得分:1)

您的表必须使用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).')');

进一步测试是有序的,但到目前为止它似乎按预期工作。

答案 1 :(得分:-2)

where where条件里面的$ query对我来说很奇怪。