Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mysql和php中进行全文搜索和相关性匹配?_Mysql_Search_Full Text Search_Pattern Matching_Search Engine - Fatal编程技术网

如何在mysql和php中进行全文搜索和相关性匹配?

如何在mysql和php中进行全文搜索和相关性匹配?,mysql,search,full-text-search,pattern-matching,search-engine,Mysql,Search,Full Text Search,Pattern Matching,Search Engine,比如说表1: $first_query = sql_query_first($search_term,$page); $list_info =sort_result(search($first_query,$search_term)); function search($querys,$term) { shinee_library(); $co_se=0; $search_q=mysql_query($querys); while (($list_info[$co_se] = mysq

比如说表1:

$first_query = sql_query_first($search_term,$page); 

$list_info =sort_result(search($first_query,$search_term));

function search($querys,$term) {
shinee_library(); 
$co_se=0; $search_q=mysql_query($querys);

while (($list_info[$co_se] = mysql_fetch_assoc($search_q))) 
            {                           
            $name=0;$des=0;$re=0;$tag=0;
            $pattern =explode(" ",$term);$size_len=sizeof($pattern);                
            while($re< $size_len) {
                    if (preg_match("/".$pattern[$re]."/i", $list_info[$co_se]["name"])) {  $name=$name+1; }  
                    if (preg_match("/".$pattern[$re]."/i", $list_info[$co_se]["description"])) {  $des=$des+1; }                                                                        
                    $re++;
                }                               
            $arr1 = array_unique($pattern);
            $arr2 =  array_unique(explode(",",$list_info[$co_se]["tags"]));                     
            foreach($arr2 as $val)  {  if(in_array($val, $arr1)) { $tag=3; break;  }         }                                      
            $list_info[$co_se]["tit_rel"]=(($name/$size_len)+($des/$size_len)/4)+$tag;              
            $co_se++;                                               
            }
mysql_close();      
return $list_info;
}




function sql_query_first($pattern,$page) {
    $searchitems=explode(" ", $pattern); $clause ="OR"; $query = "select * from doc_basic WHERE ( ";
for($i=0;$i<count($searchitems);$i++)
    { $queryappend .= "(name LIKE '% ".$searchitems[$i]." %' OR description LIKE '% ".$searchitems[$i]." %')";
        if($i<count($searchitems)-1) $queryappend .= $clause;
    } 
    $query .=$queryappend.$attach.") LIMIT ".($page-1)."0 , ".$page."0";   


  return $query;
}

function sort_result($info) { 
        foreach ($info as $key => $row) { $tit_rel[$key]  = $row['tit_rel'];  }
        array_multisort($tit_rel, SORT_DESC,  $info);       
        return  $info;
    }
result1
>1. Title: bank aptitude interview questions and answers
>2. description: bank aptitude interview questions and general awareness questions
>3. tags: bank apptitude,bank

result2:
>1. Title: php interview questions and answers
>2. description: PHP and mysql interview questions for all mnc companies
>3. tags: php,mysql
第1行:

$first_query = sql_query_first($search_term,$page); 

$list_info =sort_result(search($first_query,$search_term));

function search($querys,$term) {
shinee_library(); 
$co_se=0; $search_q=mysql_query($querys);

while (($list_info[$co_se] = mysql_fetch_assoc($search_q))) 
            {                           
            $name=0;$des=0;$re=0;$tag=0;
            $pattern =explode(" ",$term);$size_len=sizeof($pattern);                
            while($re< $size_len) {
                    if (preg_match("/".$pattern[$re]."/i", $list_info[$co_se]["name"])) {  $name=$name+1; }  
                    if (preg_match("/".$pattern[$re]."/i", $list_info[$co_se]["description"])) {  $des=$des+1; }                                                                        
                    $re++;
                }                               
            $arr1 = array_unique($pattern);
            $arr2 =  array_unique(explode(",",$list_info[$co_se]["tags"]));                     
            foreach($arr2 as $val)  {  if(in_array($val, $arr1)) { $tag=3; break;  }         }                                      
            $list_info[$co_se]["tit_rel"]=(($name/$size_len)+($des/$size_len)/4)+$tag;              
            $co_se++;                                               
            }
mysql_close();      
return $list_info;
}




function sql_query_first($pattern,$page) {
    $searchitems=explode(" ", $pattern); $clause ="OR"; $query = "select * from doc_basic WHERE ( ";
for($i=0;$i<count($searchitems);$i++)
    { $queryappend .= "(name LIKE '% ".$searchitems[$i]." %' OR description LIKE '% ".$searchitems[$i]." %')";
        if($i<count($searchitems)-1) $queryappend .= $clause;
    } 
    $query .=$queryappend.$attach.") LIMIT ".($page-1)."0 , ".$page."0";   


  return $query;
}

function sort_result($info) { 
        foreach ($info as $key => $row) { $tit_rel[$key]  = $row['tit_rel'];  }
        array_multisort($tit_rel, SORT_DESC,  $info);       
        return  $info;
    }
result1
>1. Title: bank aptitude interview questions and answers
>2. description: bank aptitude interview questions and general awareness questions
>3. tags: bank apptitude,bank

result2:
>1. Title: php interview questions and answers
>2. description: PHP and mysql interview questions for all mnc companies
>3. tags: php,mysql
  • 标题:php面试问答
  • 说明:针对所有跨国公司的PHP和mysql面试问题
  • 标签:php,mysql
  • 第2行

  • 标题:银行能力倾向面试问答
  • 说明:银行能力倾向面试问题和一般意识问题
  • 标记:银行应用程序,银行
  • 查询:银行考试问答

    我使用了以下代码:

    $first_query = sql_query_first($search_term,$page); 
    
    $list_info =sort_result(search($first_query,$search_term));
    
    function search($querys,$term) {
    shinee_library(); 
    $co_se=0; $search_q=mysql_query($querys);
    
    while (($list_info[$co_se] = mysql_fetch_assoc($search_q))) 
                {                           
                $name=0;$des=0;$re=0;$tag=0;
                $pattern =explode(" ",$term);$size_len=sizeof($pattern);                
                while($re< $size_len) {
                        if (preg_match("/".$pattern[$re]."/i", $list_info[$co_se]["name"])) {  $name=$name+1; }  
                        if (preg_match("/".$pattern[$re]."/i", $list_info[$co_se]["description"])) {  $des=$des+1; }                                                                        
                        $re++;
                    }                               
                $arr1 = array_unique($pattern);
                $arr2 =  array_unique(explode(",",$list_info[$co_se]["tags"]));                     
                foreach($arr2 as $val)  {  if(in_array($val, $arr1)) { $tag=3; break;  }         }                                      
                $list_info[$co_se]["tit_rel"]=(($name/$size_len)+($des/$size_len)/4)+$tag;              
                $co_se++;                                               
                }
    mysql_close();      
    return $list_info;
    }
    
    
    
    
    function sql_query_first($pattern,$page) {
        $searchitems=explode(" ", $pattern); $clause ="OR"; $query = "select * from doc_basic WHERE ( ";
    for($i=0;$i<count($searchitems);$i++)
        { $queryappend .= "(name LIKE '% ".$searchitems[$i]." %' OR description LIKE '% ".$searchitems[$i]." %')";
            if($i<count($searchitems)-1) $queryappend .= $clause;
        } 
        $query .=$queryappend.$attach.") LIMIT ".($page-1)."0 , ".$page."0";   
    
    
      return $query;
    }
    
    function sort_result($info) { 
            foreach ($info as $key => $row) { $tit_rel[$key]  = $row['tit_rel'];  }
            array_multisort($tit_rel, SORT_DESC,  $info);       
            return  $info;
        }
    
    result1
    >1. Title: bank aptitude interview questions and answers
    >2. description: bank aptitude interview questions and general awareness questions
    >3. tags: bank apptitude,bank
    
    result2:
    >1. Title: php interview questions and answers
    >2. description: PHP and mysql interview questions for all mnc companies
    >3. tags: php,mysql
    

    按相关性匹配获取结果,并按标记匹配对结果进行排序

    ?是、、全文相关性匹配。。。并按标记对结果进行排序。。。