mysql - joomla 中的全文查询

标签 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);

结果输出模板配置参数

最佳答案

您的表必须使用 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/

相关文章:

java - 检查字符串是否与 mySQL 兼容 UTF-8

php - Codeigniter 搜索不起作用

sql - SQL 中按列排序的自定义搜索

c# - 为池中的每个连接设置 MySql session 变量

java - 无法使用 @PersistenceContext 注入(inject) EntityManager [将持久性单元注入(inject) CDI 托管 bean 时出错。]

algorithm - 如何提高关键字搜索的性能?

search - 如何构建考虑单词之间的距离和单词精确度的 Elasticsearch 查询

joomla - 在 Joomla 3 中添加快捷图标

php - Joomla 基于微型网站 URL 的不同默认页面

.htaccess - 如果我激活 SEF 选项,则在单击 Joomla 链接时未指定输入文件