我有一个 mysql 表,其中有 3 列,其中包含用于常见问题解答搜索的数据,我想让用户输入他们想要回答的问题,并在表中的 3 列中搜索出现在任何问题中的关键字。表中的列。并按关键字匹配数最多的行对结果进行排序。
我正在使用 Code Igniter 框架。目前,我的模型中有一个带有全文搜索的查询:
$new_query = 'This is a question';
$sql = "SELECT ques_id, ques_desc FROM ec_questions WHERE MATCH (ques_desc,ques_tags,ques_answer) AGAINST (? IN BOOLEAN MODE) LIMIT 15";
$query = $this->db->query($sql, array($new_query));
return $query->result_array();
但是上面似乎并没有真正返回我想要的结果,有帮助吗?
谢谢
“显示创建表”结果: http://pastebin.com/nKd1JT5n
最佳答案
我认为您不需要IN BOOLEAN MODE
,因为这增加了对特殊修饰符+
、-
等的支持 http://dev.mysql.com/doc/refman/5.5/en//fulltext-boolean.html 。
此外,implode()
不能直接作用于字符串
字符串内爆(字符串 $glue ,数组 $pieces )
尝试
$new_query = '这是一个问题';
而不是
$new_query = implode(' ', '这是一个问题');
关于php - mysql 在短语中搜索关键字,按找到的最多关键字排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13409195/