本人目前在做搜索引擎,但遇到一个问题,是不是难题数据库里有"中国",输入“中国人”搜不出这个“中国”的数据,我要实现即使输入“中国人”或者其他的带“中国”的关键词也要搜出这个“中国”的数据,我该怎么做?

解决方案 »

  1.   

    用分词算法,这个是个很大的研究课题。百度和google都有专门的研究分词算法的。个人做的话,很费劲的。
    根据你的需求我有个小建议,你可以把"中国人",拆成数组,然后根据单个子去搜,就能搜到中国了。只能算是分字吧。给你一个分数组的方法。
    <?php                              
    $str = "我爱你ABC123";            
    $a = array();                     
    $z = 0;                           
    for ($i=0; $i< strlen($str); $i++){
            $x = substr($str,$i,1);         
                    if (ord($x)>127){              
                      $a[$i]= substr($str,$i,2);   //当大于127时,取到的ascii码是一半,需要加另外一半
                      $i=$i+1;                     
                    }else{                        
                            $a[$i]= $x;                  
                    }                              
            }                                
    print_r($a);                       
    ?>
      

  2.   

    我知道一款搜索引擎叫做:sphider,之前用过,很好用。如果需要的话,请访问:www.sphider.eu。应该有你需要的。