ASP编写酷似搜索引擎功能的代码
发布时间:2023-08-05 14:36:22 所属栏目:Asp教程 来源:
导读:首先建一个access 数据库,库中有一个URLINDEX表,其中URL和Keywords字段分别添加了索引,如下:
以下为引用的内容:
URL 文本(索引:有(无重复))
Title文本
Description文本
Summary文本
Ke
以下为引用的内容:
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> (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐