今天发现用phpcms做的网站,有些内容搜不到,但是,这些内容明明存在,为什么会出现这个问题呢?百度后发现是phpcms的分词搜索造成的
打开phpcms\modules\search\index.php找到
if(!empty($segment_q)) {
$sql = “`siteid`= ‘$siteid’ AND `typeid` = ‘$typeid’ $sql_time AND MATCH (`data`) AGAINST (‘$segment_q’ IN BOOLEAN MODE)”;
} else {
$sql = “`siteid`= ‘$siteid’ AND `typeid` = ‘$typeid’ $sql_time AND `data` like ‘%$q%’”;
}
把以上代码替换为
$sql = “`siteid`= ‘$siteid’ AND `typeid` = ‘$typeid’ $sql_time AND `data` like ‘%$q%’”;
意思就是不再使用分词进行关键字搜索,而是直接使用你输入的关键字查找
或者注释掉第78行(phpcmsV9.6.0 Release 20151225 版)
//$this->keyword_db->update(array('searchnums'=>'+=1'), array('keyword'=>$q));