相信大家對DEDE5.6 DEDE5.7的站內(nèi)搜索非常失望吧,U盤量產(chǎn)網(wǎng)也一樣,雖然已經(jīng)優(yōu)化了讓搜索結(jié)果按標題匹配,但比如搜索“金士頓”的時候會出現(xiàn)非常多有金士頓關(guān)鍵字的文章,完全是按最新發(fā)布時間排序,也就是說最新發(fā)布的顯示在最前面,問題來了,大家想要搜索的結(jié)果都是大家都需要的結(jié)果,但最新發(fā)布的不一定是需要的,而幾頁的搜索結(jié)果讓用戶無所適從;
如何解決呢,U盤量產(chǎn)網(wǎng)想到了按點擊量來排序搜索結(jié)果,當然首先百度谷歌下有沒有人遇到同樣的問題,失望的是網(wǎng)上大多數(shù)的教程均為DEDE老版本的教程, 完全不能用,首先/include/inc_arcsaerch_view.php在新版本的DEDE織夢程序里根本找不到了,新版本的站內(nèi)搜索PHP文 件其實是/include/arc.searchview.class.php,其次是$this->OrderBy = 'dede_full_search.aid desc';代碼在新版本的arc.searchview.class.php文件里根本找不到,也就不能按網(wǎng)上的教程修改了;
怎么辦呢?問題肯定是可以被解決的,我發(fā)現(xiàn)在arc.searchview.class.php文件467行“排序方式”注釋下面是搜索結(jié)果排序代碼,怎么解決呢!請教了高高手,解決方式如下:
在/include/arc.searchview.class.php文件467行“//排序方式”注釋下面 “//搜索”注釋以上的代碼改成如下代碼:
$ordersql = '';
if($this->ChannelType< 0 ||$this->ChannelTypeid< 0){
if($orderby=="id"){
$ordersql="order by arc.aid desc";
}else if($orderby=="senddate"){
$ordersql="order by arc.senddate desc";
}else{
$ordersql=" order by arc.click desc";
}
}else{
if($orderby=="senddate")
{
$ordersql=" order by arc.senddate desc";
}
else if($orderby=="pubdate")
{
$ordersql=" order by arc.pubdate desc";
}
else if($orderby=="id")
{
$ordersql=" order by arc.id desc";
}
else
{
$ordersql=" order by arc.click desc";
}
}
|
測試一下是不是解決了呢:如下圖所示
趕緊修改你的搜索代碼,優(yōu)化織夢的搜索結(jié)果大大提高用戶體驗吧!