相信大家对DEDE5.6 DEDE5.7的站内搜索非常失望吧,U盘量产网也一样,虽然已经优化了让搜索结果按标题匹配,但比如搜索“金士顿”的时候会出现非常多有金士顿关键字的文章,完全是按最新发布时间排序,也就是说最新发布的显示在最前面,问题来了,大家想要搜索的结果都是大家都需要的结果,但最新发布的不一定是需要的,而几页的搜索结果让用户无所适从;; B \) l: Q: q6 f; H6 x y
如何解决呢,U盘量产网想到了按点击量来排序搜索结果,当然首先百度谷歌下有没有人遇到同样的问题,失望的是网上大多数的教程均为DEDE老版本的教程, 完全不能用,首先/include/inc_arcsaerch_view.php在新版本的DEDE织梦程序里根本找不到了,新版本的站内搜索PHP文 件其实是/include/arc.searchview.class.php,其次是$this->OrderBy = 'dede_full_search.aid desc';代码在新版本的arc.searchview.class.php文件里根本找不到,也就不能按网上的教程修改了;
6 R+ \; S. Q5 n( E4 }2 O( ~/ x 怎么办呢?问题肯定是可以被解决的,我发现在arc.searchview.class.php文件467行“排序方式”注释下面是搜索结果排序代码,怎么解决呢!请教了高高手,解决方式如下:' \ m; J0 h' V2 R
在/include/arc.searchview.class.php文件467行“//排序方式”注释下面 “//搜索”注释以上的代码改成如下代码:
+ F' X. E4 V- O; g$ordersql = '';( q2 O9 z9 O" V/ i
if($this->ChannelType< 0 ||$this->ChannelTypeid< 0){
* @9 {3 V+ ?! h1 `3 Vif($orderby=="id"){
n# k" h6 O8 v$ordersql="order by arc.aid desc";
, m9 \) D1 \0 [1 d( A}else if($orderby=="senddate"){2 |; c* q; f) h' [3 p6 r# p$ Z/ T
$ordersql="order by arc.senddate desc";
; W) E3 o: F1 z! _}else{4 C% {2 l% @- }# P
$ordersql=" order by arc.click desc";
' k' ?' X# X# ^ j}
7 G6 Q& i/ h/ O, h* \2 U}else{
: a; @1 G+ y6 v. Gif($orderby=="senddate")5 G) j/ T9 A9 e
{
; y. y# S; T! t5 w& W: R$ordersql=" order by arc.senddate desc";
4 K9 y6 N- w8 F; w4 t; v P+ t}
$ }. E4 M, O9 a" f! W- z' ^- Aelse if($orderby=="pubdate")8 u& i+ _* e/ [( X! Z
{
! A6 t) M, D; L' Q# F m$ordersql=" order by arc.pubdate desc";% K0 v2 A! e1 T5 q4 \/ `
}. v! i8 w, ]" y6 G2 y i8 ~- {
else if($orderby=="id")
5 Y8 l5 e6 Z D( s{. h/ u4 ^( @' x% U+ M& x
$ordersql=" order by arc.id desc";
?+ S w6 q8 C+ y/ Z5 `/ o8 [* A}
' ]$ A" Y1 J) h5 ?6 Xelse
; x o; D& \+ h( ?6 O; L" ^{* u8 G6 _% k' H+ D) {) q
$ordersql=" order by arc.click desc";
& h8 z5 a' V7 b" `+ m7 F( f: z}- d0 Z; |" Y' q9 h
}$ c ^/ z5 K. H
测试一下是不是解决了呢:如下图所示$ @0 ^5 E S8 F
. g( A% R1 m+ q% _5 U
0 n f$ ~, O1 X5 o: _ r 赶紧修改你的搜索代码,优化织梦的搜索结果大大提高用户体验吧!本文由橡胶输送带托辊滚筒:http://www.shusongdai86.com/ 转载。
0 y' q; P. G3 h+ B; C |