加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

ASP编写酷似搜索引擎功能的代码

发布时间:2023-08-05 14:36:22 所属栏目:Asp教程 来源:
导读:首先建一个access 数据库,库中有一个URLINDEX表,其中URL和Keywords字段分别添加了索引,如下:

以下为引用的内容:

URL 文本(索引:有(无重复))

Title文本

Description文本

Summary文本

Ke
首先建一个access 数据库,库中有一个URLINDEX表,其中URL和Keywords字段分别添加了索引,如下:
 
以下为引用的内容:
 
URL 文本(索引:有(无重复))
 
Title文本
 
Description文本
 
Summary文本
 
Keywords文本(索引:有(无重复))
 
程序文件doquery.asp,代码:
 
以下为引用的内容:
 
<HTML><HEAD><TITLE>简单搜索引擎</TITLE></HEAD>
 
<BODYBGCOLOR=#ffffffMARGINWIDTH="0"MARGINHEIGHT="0"
 
LEFTMARGIN=0TOPMARGIN=0>
 
<FORMMETHOD="post"ACTION="doquery.asp?act=search">
 
Query:<INPUTTYPE="Text"NAME="QueryString"><BR>
 
<INPUTTYPE="Submit"VALUE="Submit">
 
</FORM>
 
</CENTER>
 
<%
 
dimact
 
act=request("act")
 
if(act="search")then
 
QueryString=Request.form("QueryString")
 
QueryWords=Split(QueryString)
 
strIndent=""
 
'如果搜索为空则返回
 
IfQueryString=""Then
 
Response.Redirect("default.asp")
 
EndIf
 
Session.timeout=2
 
IfIsObject(Session("sitesearch_conn"))Then
 
Setconn=Session("sitesearch_conn")
 
Else
 
Setconn=Server.CreateObject("ADODB.Connection")
 
conn.open"driver={MicrosoftAccessDriver(*.mdb)};dbq="&Server.MapPath("database/SiteSearch.mdb"),"",""
 
SetSession("sitesearch_conn")=conn
 
EndIf
 
'查询语句
 
sql="SELECT*FROM[URLIndex]WHERE"
 
'搜索Description字段
 
sql=sql&"([Description]LIKE'%"&QueryWords(0)&"%'"'First
 
Fori=LBound(QueryWords)+1toUBound(QueryWords)
 
IfQueryWords(i)<>""andUCase(QueryWords(i))<>"OR"andUCase(QueryWords(i))<>"AND"Then
 
IfuCase(QueryWords(i-1))="OR"Then
 
sql=sql&"OR[Description]LIKE'%"&QueryWords(i)&"%'"
 
Else
 
sql=sql&"AND[Description]LIKE'%"&QueryWords(i)&"%'"
 
EndIf
 
EndIf
 
Next
 
'搜索Keywords字段
 
sql=sql&")OR([Keywords]LIKE'%"&QueryWords(0)&"%'"
 
Fori=LBound(QueryWords)+1toUBound(QueryWords)
 
IfQueryWords(i)<>""andUCase(QueryWords(i))<>"OR"andUCase(QueryWords(i))<>"AND"Then
 
IfuCase(QueryWords(i-1))="OR"Then
 
sql=sql&"OR[Keywords]LIKE'%"&QueryWords(i)&"%'"
 
Else
 
sql=sql&"AND[Keywords]LIKE'%"&QueryWords(i)&"%'"
 
EndIf
 
EndIf
 
Next
 
'搜索Title字段
 
sql=sql&")OR([Title]LIKE'%"&QueryWords(0)&"%'"
 
Fori=LBound(QueryWords)+1toUBound(QueryWords)
 
IfQueryWords(i)<>""andUCase(QueryWords(i))<>"OR"andUCase(QueryWords(i))<>"AND"Then
 
IfuCase(QueryWords(i-1))="OR"Then
 
sql=sql&"OR[Title]LIKE'%"&QueryWords(i)&"%'"
 
Else
 
sql=sql&"AND[Title]LIKE'%"&QueryWords(i)&"%'"
 
EndIf
 
EndIf
 
Next
 
'搜索Summary字段
 
sql=sql&")OR([Summary]LIKE'%"&QueryWords(0)&"%'"
 
Fori=LBound(QueryWords)+1toUBound(QueryWords)
 
IfQueryWords(i)<>""andUCase(QueryWords(i))<>"OR"andUCase(QueryWords(i))<>"AND"Then
 
IfuCase(QueryWords(i-1))="OR"Then
 
sql=sql&"OR[Summary]LIKE'%"&QueryWords(i)&"%'"
 
Else
 
sql=sql&"AND[Summary]LIKE'%"&QueryWords(i)&"%'"
 
EndIf
 
EndIf
 
Next
 
sql=sql&")"
 
'
 
Setrs=Server.CreateObject("ADODB.Recordset")
 
rs.Opensql,conn,3,3
 
Response.Write"<BR><B>你搜索的是:</B>"&QueryString
 
Response.Write"<BR><B>搜索的关键字:</B>"
 
Fori=LBound(QueryWords)toUBound(QueryWords)
 
Response.Write"<BR>"&strIndent&i&":"&QueryWords(i)
 
Next
 
'PrinttheSQLString
 
Response.Write"<BR><B>sql语句:</B>"&sql
 
'PrinttheResults
 
Response.Write"<BR><B>结果:</B><UL>"
 
OnErrorResumeNext
 
rs.MoveFirst
 
DoWhileNotrs.eof
 
Response.Write"<BR>"&"<AHREF='OpenPage.asp?IndexURL="&rs.Fields("URL").Value&"'>"&rs.Fields("Title")&"</A>-"
 
Response.Writers.Fields("Description")&"<BR>"
 
Response.Write"<FONTSIZE=2>URL:"&rs.Fields("URL")&"</FONT>"
 
Response.Write"<HRSIZE=1WIDTH=200ALIGN=LEFT>"
 
rs.MoveNext
 
Loop
 
Response.Write"</UL>"
 
endif
 
%>
 
</BODY>
 
</HTML>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章