Fix Missing and Inaccurate Search Results in PHPCMS V9

Open phpcms/modules/search/index.php
Find:

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%";
}

Replace with:

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%'";                                      
}

You can download various versions of PHPCMS v9 from our download site:

https://mirror.cnop.net/?search=phpcms

Leave a Comment

Your email address will not be published.