最近一直在把站點改成了站群,卻發現搜索竟然無效了.
分析了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];//開源代碼Vevb.com
- }
- }
- $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'];
新聞熱點
疑難解答