花魁直播高品质美女在线视频互动社区 - 花魁直播官方版

 歡迎來到素材無憂網(wǎng),按 + 收藏我們
登錄 注冊 退出 找回密碼

優(yōu)化織夢dedecms搜索結(jié)果,使搜索更精確

時間: 2019-04-22 11:20 閱讀: 作者:素材無憂網(wǎng)

由于織夢DedeCMS搜索采用了分詞,提升了搜索智能化,但是我們發(fā)現(xiàn),搜索結(jié)果并沒有變的更準確,本篇對DedeCMS的搜索進行一個優(yōu)化,使它的搜索結(jié)果變的更智能、準確。

首先需要調(diào)整搜索頁面的一個欄目關(guān)鍵詞替換,找到/plus/search.php將其中58行代碼:

<pre 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)

{


然后,我們再調(diào)整下分詞檢索的類,找到/include/arc.searchview.class.php,找到function GetKeywords($keyword)這個類的方法,替換為:

function GetKeywords($keyword)
{
global $cfg_soft_lang;
$keyword = cn_substr($keyword, 50);
$row = $this->dsql->GetOne("SELECT spwords FROM `dede_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é)果。