优化织梦dedecms搜索结果



由于织梦dedecms搜索采用了分词,提升了搜索智能化,但是我们发现,搜索结果并没有变的更准确,本篇对织梦dedecms的搜索进行一个优化,使它的搜索结果变的更智能、准确。

首先需要调整搜索页面的一个栏目关键词替换,找到/plus/search.php将其中58行代码:

<preclass=”brush:php;”>foreach($typeArras$id=>$typename){$keywordn=str_replace($typename,”,$keyword);if($keyword!=$keywordn){

修改为:

foreach($typeArras$id=>$typename){//$keywordn=str_replace($typename,”,$keyword);$keywordn=$keyword;if($keyword!=$keywordn){

然后,我们再调整下分词检索的类,找到/include/arc.searchview.class.php,找到functionGetKeywords($keyword)这个类的方法,替换为:

function GetKeywords($keyword) {global$cfg_soft_lang;$keyword=cn_substr($keyword,50);$row=$this->dsql->GetOne(“SELECTspwordsFROM`dede_search_keywords`WHEREkeyword='”.addslashes($keyword).”‘;”);if(!is_array($row)){if(strlen($keyword)>7){$sp=newSplitWord($cfg_soft_lang,$cfg_soft_lang);$sp->SetSource($keyword,$cfg_soft_lang,$cfg_soft_lang);$sp->SetResultType(2);$sp->StartAnalysis(TRUE);$keywords=$sp->GetFinallyResult();$idx_keywords=$sp->GetFinallyIndex();ksort($idx_keywords);$keywords=$keyword.”;foreach($idx_keywordsas$key=>$value){if(strlen($key)<=3){continue;}$keywords.=”.$key;}$keywords=preg_replace(“/[]{1,}/”,””,$keywords);//var_dump($idx_keywords);exit();unset($sp);}else{$keywords=$keyword;}$inquery=”INSERTINTO`dede_search_keywords`(`keyword`,`spwords`,`count`,`result`,`lasttime`)VALUES(‘”.addslashes($keyword).”‘,'”.addslashes($keywords).”‘,’1′,’0’,'”.time().”‘);”;$this->dsql->ExecuteNoneQuery($inquery);}else{$this->dsql->ExecuteNoneQuery(“UPDATE`dede_search_keywords`SETcount=count+1,lasttime='”.time().”‘WHEREkeyword='”.addslashes($keyword).”‘;”);$keywords=$row[‘spwords’];}return$keywords;}

最后,我们清空下数据表dede_search_keywords,重新构建检索分词结果。

 

本文由零壹源码整理自网络,如本站发布的内容若侵犯到您的权益,请邮件联系 1115211524@qq.com  删除,我们将及时处理!

==========================================

本站资源仅供学习和交流使用,本站对其所列之资源不拥有版权,版权归资源原作者所有,请在下载后24小时之内自觉删除。

若作商业用途,请购买正版及查阅最新授权相关说明,由于未及时购买和付费发生的侵权行为,与本站无关。

本站大部分资源及其所有相关信息均来自网络搜集或网友提供,不保证其完整性以及安全性,对信息的准确性不提供任何担保,亦不承担任何责任。

分享到:

Hi, 如果你对此资源有疑问,可以跟我联系哦!

联系客服