欢迎访问融科网络!我们专注于郑州网站建设郑州网站制作郑州网站设计郑州做网站等相关服务!
营销之道 干货分享
了解企业新动态,分享前沿的营销推广干货,成长路上,我们携手同行

编程代码

dede搜索一些使用心得

标签: 作者:融科网络 | 点击:
05

Nov
2019

导语
1站内搜索增加个仅搜索当前频道功能 其实自己有搜索框加一个栏目选择的项就行了,系统不必要自动去生成 高级搜索里可选的条件,你全都可以用 Quote: select name=channeltype id=channelt
 

1站内搜索增加个仅搜索当前频道功能
其实自己有搜索框加一个栏目选择的项就行了,系统不必要自动去生成
高级搜索里可选的条件,你全都可以用
Quote:
<select name="channeltype" id="channeltype" style="width:100">
<option value="0" selected>--不限--</option>
<option value='4'>Flash</option>
<option value='3'>软件</option>
<option value='2'>图片集</option>
<option value='1'>普通新闻</option>
</select>

如果不想用户选择,你直接加
<input type='hidden' name='channeltype' value="{dede:field name='channeltype'/}">
这样也行

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的问题

覆盖补丁后请在后台 内容维护 搜索Keywords管理 处删除不正常的Keywords。
解决办法:官方已经出补丁了
download补丁包download地址(GBK/UTF8请按版本选择里面的文件)

非5.1版请修改 plus/search.php文件
把Copy code$keyword = ereg_replace("[\|\"\r\n\t%\*\?\(\)\$;,'%-]"," ",trim($keyword));
替换为Copy code$keyword = ereg_replace("[\|\"\r\n\t%\*\?\(\)\$;,'%<>]"," ",trim($keyword));

3

新闻关键词自动对应搜索的方案
{dede:field name='keywords' runphp='yes' }
if(!empty(@me)){
$kws = explode(' ',@me);
@me = "";
foreach($kws as $k){
@me .= "<a href='/cms/plus/search.php?keyword=".urlencode($k)."' >$k</a> ";
}
@me= str_replace('+', ' ',trim(@me));
}
{/dede:field}

栏目页中的关键词自动连接对应方案,//
关键词: [field:keywords runphp='yes']
if(!empty(@me)){
$kws = explode(' ',@me);
@me = "";
foreach($kws as $k){
@me .= "<a href='/cms/plus/search.php?keyword=".urlencode($k)."' >$k</a> ";
}
@me= str_replace('+', ' ',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'} 
<a class="tag" href=http://www.dede58.com/a/dedejq/"/plus/search.php?keyword=[field:keyword/]">[field:keyword/]</a> 
{/dede:loop}



过滤的关键词可以自已加
这个需要明白是什么吧
sort='lasttime' 
sort='count' 

TO_DAYS 改成其它MYSQL时间函数还可调用一周内的关键词等,请自行修改!
【教程】实时更新的【热门关键词】!?tid=15818

6
大大提高搜索准确度的办法
原来的源码的 请将
<form action="{dede:field name='phpurl'/}/search.php" name="formsearch">
<input type="hidden" name="kwtype" value="0">
改成
<form action="{dede:field name='phpurl'/}/search.php" name="formsearch">
<input type="hidden" name="kwtype" value="1">

即0改成1

采用“仅搜索标题”的搜索方式,
<option value="title" selected>搜索标题</option> 可将这个设为默认,或者干脆删除下面的智能模

糊,那个太不准。
<option value="titlekeyword">智能搜索</option>

-----------------------------------
高级搜索中,可以将源码中的“与”改成默认
<input type="radio" name="kwtype" value="1" checked="checked"/>

<input name="kwtype" type="radio" value="0" />


“与”需要就是value="1"的意思,下面的同样采用“仅搜索标题”的方式


总的说来就是“与”(value="1")+“仅搜索标题”=准确 

7
怎么设置让搜索条可以搜一个汉字
需要修改2个地方
/plus/search.php 

if($keyword==""||strlen($keyword)<1){
ShowMsg("关键词不能小于1个字节!","-1");
exit();
}

/include/inc_arcsearch_view.php
codeif(strlen($k)<2) continue; 郑州融科网络专注于企业网站建设、网站制作、高端网站设计,郑州荥阳、上街做网站就找融科网络!
本文章网址:http://www.ppssdd.com/code/14718.html。转载请保留出处,谢谢合作!

全网(营销型+响应式)专业定制

快速搭建高询盘+营销独立站

微信扫一扫 添加微信

推荐分享,免费SEO诊断

扫码加好友,即送价值1880元的SEO优化教程

(网站没排名,轻松让关键词上首页!专注H5企业建站+网站优化推广)

上一篇:修改dede提示信息

下一篇:织梦DedeCMS在自定义表单里加入验证码的办法

  • 网站建设咨询
  • 网站建设案例
建站流程
  • 网站需
    求分析
  • 网站策
    划方案
  • 页面风
    格设计
  • 程序设
    计研发
  • 资料录
    入优化
  • 确认交
    付使用
  • 后续跟
    踪服务
  • 151-3895-5886
  • 品牌网站建设定制
  • 营销型网站建设定制