ASP做站内简单搜索

最近在做公司网站,为了让客户更容易地查找公司的产品以及新闻等信息,要实现站内简单搜索.如果简单地采用SQL的LIKE '%Keyword%'方法效率实在不高.比如公司主打产品IPBOARD,如果你输入"IP BOARD"就找不到了.想了个办法解决.构造SQL语句核心代码如下:
 
Dim act,Key,i,sql
act=trim(request.QueryString("action"))
if act="search" then
 Key=trim(request.Form("Keyword"))
 if requestCstringSafe(Key)="" then Dimerr "搜索字符串中含有非法字符,或者为空","back"
 Key=replace(Key," "," ")
 Key=split(Key," ")
 '查询JL_Subject表,构造SQL语句
 sql="select * from JL_Subject where "
 
 sql=sql&"(Keyword Like '%"&Key(0)&"%' "  '搜索Keyword字段
 for i=Lbound(Key)+1 to Ubound(Key)
  if Key(i)<>"" and UCase(Key(i))<>"OR" and UCase(Key(i))<>"AND" then 
   if UCase(Key(i-1))="OR" then
    sql=sql&" or Keyword Like '%"&Key(i)&"%'"
   else
    sql=sql&" and Keyword Like '%"&Key(i)&"%'"
   end if
  end if
 next
 
 sql=sql&") or (Title Like '%"&Key(0)&"%' "
 for i=Lbound(Key)+1 to Ubound(Key)
  if Key(i)<>"" and UCase(Key(i))<>"OR" and UCase(Key(i))<>"AND" then 
   if UCase(Key(i-1))="OR" then
    sql=sql&" or Title Like '%"&Key(i)&"%'"
   else
    sql=sql&" and Title Like '%"&Key(i)&"%'"
   end if
  end if
 next
 
 sql=sql&")"
 
 response.Write(sql)
end if
 
OK,看看这样的SQL语句句应该没问题了吧...呵呵...
 
其实做站内搜索还有个投机取巧的办法:利用google或者百度的site:domainroot语法进行指定站搜索,将站内的搜索提交到google或者百度的服务器上(这样做的前提是你的页面必须事先被百度跟google收录了,要不然是搜取不到D...嘿嘿...)当然,如果你懂小偷技术原理的话,你还可以将提交返回的页面修改成你的风格,这样不仔细看的话还真不知道你是提交到google或者百度返回的结果.呵呵...

转载于:https://www.cnblogs.com/sojay/archive/2006/12/26/604362.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值