加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > CMS系统 > Dedecms > 正文

dede搜索一些使用心得

发布时间:2020-12-14 05:08:35 所属栏目:Dedecms 来源:网络整理
导读:1站内搜索增加个仅搜索当前频道功能 其实自己有搜索框加一个栏目选择的项就行了,系统不必要自动去生成 高级搜索里可选的条件,你全都可以用 Quote: 如果不想用户选择,你直接加 这样也行 2 最新5.1随便搜索一串数字出错 提示信息如下: You have an error in
1站内搜索增加个仅搜索当前频道功能
其实自己有搜索框加一个栏目选择的项就行了,系统不必要自动去生成
高级搜索里可选的条件,你全都可以用
Quote:
这样也行

2
最新5.1随便搜索一串数字出错
提示信息如下:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server?

version for the right syntax to use near ') limit 500' at line 1 - Execute Query False!?

Select aid from dede_full_search where arcrank > -1 and () limit 500
因搜索未过滤html标签,导致用户可以在搜索出注入html代码,该补丁修改该问题和utf-8版tag标签找不

到以及部分用户尾部丢0的问题

覆盖补丁后请在后台 内容维护?搜索关键词管理 处删除不正常的关键词。
解决方法:官方已经出补丁了
下载补丁包下载地址(GBK/UTF8请按版本选择里面的文件)
http://www.dedecms.com/upimg/soft/2008/patch20080407.zip
非5.1版请修改 plus/search.php文件
把Copy code$keyword = ereg_replace("[|"rnt%*?()$;,'%-]"," ",trim($keyword));
替换为Copy code$keyword = ereg_replace("[|"rnt%*?()$;,'%<>]",trim($keyword));

3

文章关键字自动对应搜索的办法
{dede:field name='keywords' runphp='yes' }
if(!empty(@me)){
$kws = explode(' ',@me);
@me = "";
foreach($kws as $k){
@me .= " }
@me= str_replace('+',' ',trim(@me));
}
{/dede:field}

列表页中的关键字自动连接对应办法,//
关键字: [field:keywords runphp='yes']
if(!empty(@me)){
$kws = explode(' ',trim(@me));
}
[/field:keywords]

4
在文章列表页和搜索结果页调用来源
1 ,改 include 目录下的 inc_arclist_view.php?

查找?

$query = "Select arc.ID,arc.title,arc.iscommend,arc.color,
arc.typeid,arc.ismake,arc.money,arc.description,arc.shorttitle,
arc.memberid,arc.writer,arc.postnum,arc.lastpost,
arc.pubdate,arc.senddate,arc.arcrank,arc.click,arc.litpic,
tp.typedir,tp.typename,tp.isdefault,tp.defaultname,
tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl?
$addField

在 arc.writer,后面加上 arc.source,
(感谢cms2009分享)

2,改inc_arcsearch_view.php

查找:arctype.siteurl

添加,archives.source
5
调用当天搜索关键字,并过滤色情关键字0?
Copy code
{dede:loop table='dede_search_keywords' sort='lasttime' row='40' if='TO_DAYS(NOW())=TO_DAYS

(FROM_UNIXTIME(lasttime)) and keyword regexp "性|黄色|成人|色" =0'}?
{/dede:loop}



过滤的关键字可以自已加
这个应该明白是什么吧
sort='lasttime'?
sort='count'?

TO_DAYS 改成其它MYSQL时间函数还可调用一周内的关键字等,请自行修改!
【教程】实时更新的【热门关键字】!http://bbs.dedecms.com/read.php?tid=15818

6
大大提高搜索准确度的方法
原来的模板的 请将
改成

即0改成1

采用“仅搜索标题”的搜索方式,
    推荐文章
      热点阅读