开源CMS \ phpcms \ 【phpcms-v9】phpcms-v9中站群搜索的bug解决方案

【phpcms-v9】phpcms-v9中站群搜索的bug解决方案

总点击58
简介:最近一直在把站点改成了站群,却发现搜索竟然无效了 分析了N个文件才发现原来在没有分站的时候内容发布保存在到V9_search表的typeid对应的是1但是一旦分站点了保存的全部为0。从内容模型研究添加开始查看终于给我发现

最近一直在把站点改成了站群,却发现搜索竟然无效了

分析了N个文件才发现原来在没有分站的时候内容发布保存在到V9_search表的typeid对应的是1但是一旦分站点了保存的全部为0。从内容模型研究添加开始查看终于给我发现了,看下缓存文件大家就明白了:

模型下查找model下class类为content_model.class.php


private function search_api($id = 0,$data = array(),$action = 'update') {


$type_arr = getcache('type_model','search');


$typeid = $type_arr[$this->modelid];


if($action == 'update') {


$fulltext_array = getcache('model_field_'.$this->modelid,'model');


foreach($fulltext_array AS $key=>$value){


if($value['isfulltext']) {


$fulltextcontent .= $data['system'][$key] ? $data['system'][$key] : $data['model'][$key];


}


}


$this->search_db->update_search($typeid,$id,$fulltextcontent,addslashes($data['system']['title']).' '.addslashes($data['system']['keywords']),$data['system']['inputtime']);


} elseif($action == 'delete') {


$this->search_db->delete_search($typeid,$id);


}


}


会发现


$type_arr = getcache('type_model','search');


$typeid = $type_arr[$this->modelid];

仔细观察这句原来是单站点才可以用,站群就无法使用


因为typeid无法获取,自然默认就是0

解决方法:

$type_arr = getcache('search_model_'.$this->siteid,'search');


$typeid = $type_arr[$this->modelid]['typeid'];(责任编辑:admin)


转载请附带本文地址:http://www.hake.cc/a/kaifajiaocheng/phpcms/2012/1010/98081.html

意见反馈 常见问题 官方微信 返回顶部