首页 > CMS > PhpCMS > 正文

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

2024-09-10 07:15:58
字体:
来源:转载
供稿:网友

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

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

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

  1. private function search_api($id = 0, $data = array(), $action = 'update') { 
  2. $type_arr = getcache('type_model','search'); 
  3. $typeid = $type_arr[$this->modelid]; 
  4. if($action == 'update') { 
  5. $fulltext_array = getcache('model_field_'.$this->modelid,'model'); 
  6. foreach($fulltext_array AS $key=>$value){ 
  7. if($value['isfulltext']) { 
  8. $fulltextcontent .= $data['system'][$key] ? $data['system'][$key] : $data['model'][$key];//开源代码Vevb.com 
  9. $this->search_db->update_search($typeid ,$id$fulltextcontent,addslashes($data['system']['title']).' '.addslashes($data['system']['keywords']),$data['system']['inputtime']); 
  10. elseif($action == 'delete') { 
  11. $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'];

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表