打开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%"
;
虽然解决了搜索不到数据的问题,但新的问题随之而出,搜索出来的好多信息不准确的,那么看如下代码
if
(!empty($segment_q)) {
$length = strlen($segment_q);
$q_key =
"'"
.$segment_q.
"'"
;
if
($length>=9){
$sql =
"`siteid`= '1' AND `typeid` = '$typeid' AND (SELECT (LENGTH(`data`)-LENGTH(REPLACE(`data`,$q_key,'')))) >17"
;
}
else
{
$sql =
"`siteid`= '1' AND `typeid` = '$typeid' AND (SELECT (LENGTH(`data`)-LENGTH(REPLACE(`data`,$q_key,'')))) >11"
;
}
}
else
{
$sql =
"`siteid`= '$siteid' AND `typeid` = '$typeid' AND `data` like '%$q%'"
;
}