由于DedeCMS搜索采用了分詞,提升了搜索智能化,但是我們發(fā)現(xiàn),搜索結(jié)果并沒(méi)有變的更準(zhǔn)確,本篇對(duì)DedeCMS的搜索進(jìn)行一個(gè)優(yōu)化,使它的搜索結(jié)果變的更智能、準(zhǔn)確。
首先需要調(diào)整搜索頁(yè)面的一個(gè)欄目關(guān)鍵詞替換,找到/plus/search.將其中58行:
<e class="brush:php;"> foreach($typeArr as $id=>$typename) { $keywordn = str_replace($typename, ' ', $keyword); if($keyword != $keywordn) {修改為:
foreach($typeArr as $id=>$typename) { //$keywordn = str_replace($typename, ' ', $keyword); $keywordn = $keyword; if($keyword != $keywordn) {
然后,我們?cè)僬{(diào)整下分詞檢索的類,找到/include/arc.searchview.class.php,找到function GetKeywords($keyword)這個(gè)類的方法,替換為:
function GetKeywords($keyword) { global $cfg_soft_lang; $keyword = cn_substr($keyword, 50); $row = $this->dsql->GetOne("SELECT spwords FROM `_search_keywords` WHERE keyword='".addslashes($keyword)."'; "); if(!is_array($row)) { if(strlen($keyword)>7) { $sp = new SplitWord($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_keywords as $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 = "INSERT INTO `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` SET count=count+1,lasttime='".time()."' WHERE keyword='".addslashes($keyword)."'; "); $keywords = $row['spwords']; } return $keywords; }
最后,我們清空下數(shù)據(jù)表dede_search_keywords,重新構(gòu)建檢索分詞結(jié)果,我們可以通過(guò)下面頁(yè)面查看下分詞的結(jié)果:http://www.cit.cn/plus/search.php?q=cit%D0%C5%CF%A2%CD%F8&searchtype=title
我們還會(huì)繼續(xù)對(duì)DedeCMS搜索結(jié)果進(jìn)行優(yōu)化。
版權(quán)聲明: 本站資源均來(lái)自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!
轉(zhuǎn)載請(qǐng)注明: DedeCms教程:優(yōu)化DedeCMS搜索結(jié)果