asp简单的搜索引擎代码

下面是库中URLINDEX表:URL和Keywords字段分别添加了索引.

URL 文本 (索引:有(无重复))
Title 文本
Description 文本
Summary 文本
Keywords 文本(索引:有(无重复))


doquery.ASP

<HTML><HEAD><TITLE>简单搜索引擎</TITLE></HEAD>
<BODY BGCOLOR=#ffffff MARGINWIDTH="0" MARGINHEIGHT="0"
LEFTMARGIN=0 TOPMARGIN=0>

<FORM METHOD="post" ACTION="doquery.ASP?act=search">
Query: <INPUT TYPE="Text" NAME="QueryString"><BR>
<INPUT TYPE="Submit" VALUE="Submit">
</FORM>
</CENTER>


<%
dim act
act=request("act")
if(act="search") then
QueryString = Request.form( "QueryString" )
Querywords = Split( QueryString )
strIndent = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"

' 如果搜索为空则返回
If QueryString = "" Then
Response.Redirect( "default.ASP" )
End If

Session.timeout = 2
If IsObject(Session("sitesearch_conn")) Then
Set conn = Session("sitesearch_conn")
Else
Set conn = Server.CreateObject("ADODB.Connection")
conn.open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("database/SiteSearch.mdb"),"",""
Set Session("sitesearch_conn") = conn
End If

' 查询语句
sql = "SELECT * FROM [URLIndex] WHERE"


'搜索Description字段
sql = sql & " ( [Description] LIKE '%" & Querywords( 0 ) & "%'" ' First
For i = LBound( Querywords ) + 1 to UBound( QueryWords )
If Querywords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then
If uCase( Querywords( i-1 ) ) = "OR" Then
sql = sql & " OR [Description] LIKE '%" & Querywords( i ) & "%'"
Else
sql = sql & " AND [Description] LIKE '%" & Querywords( i ) & "%'"
End If
End If
Next

' 搜索Keywords字段
sql = sql & " ) OR ( [Keywords] LIKE '%" & QueryWords( 0 ) & "%'"
For i = LBound( Querywords ) + 1 to UBound( QueryWords )
If Querywords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then
If uCase( Querywords( i-1 ) ) = "OR" Then
sql = sql & " OR [Keywords] LIKE '%" & QueryWords( i ) & "%'"
Else
sql = sql & " AND [Keywords] LIKE '%" & QueryWords( i ) & "%'"
End If
End If
Next


' 搜索Title字段
sql = sql & " ) OR ( [Title] LIKE '%" & Querywords( 0 ) & "%'"
For i = LBound( Querywords ) + 1 to UBound( QueryWords )
If Querywords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then
If uCase( Querywords( i-1 ) ) = "OR" Then
sql = sql & " OR [Title] LIKE '%" & Querywords( i ) & "%'"
Else
sql = sql & " AND [Title] LIKE '%" & Querywords( i ) & "%'"
End If
End If
Next


' 搜索Summary字段
sql = sql & " ) OR ( [Summary] LIKE '%" & Querywords( 0 ) & "%'"
For i = LBound( Querywords ) + 1 to UBound( QueryWords )
If Querywords( i ) <> "" and UCase( QueryWords(i) ) <> "OR" and UCase( QueryWords(i) ) <> "AND" Then
If uCase( Querywords( i-1 ) ) = "OR" Then
sql = sql & " OR [Summary] LIKE '%" & Querywords( i ) & "%'"
Else
sql = sql & " AND [Summary] LIKE '%" & Querywords( i ) & "%'"
End If
End If
Next

sql = sql & " )"


'
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3

Response.Write "<BR><B> 你搜索的是: </B> " & QueryString

Response.Write "<BR><B> 搜索的关键字: </B> "
For i = LBound( Querywords ) to UBound( QueryWords )
Response.Write "<BR>" & strIndent & i & ": " & Querywords( i )
Next

' Print the SQL String
Response.Write "<BR><B> sql 语句 : </B> " & sql

' Print the Results
Response.Write "<BR><B> 结果&nbsp;&nbsp;&nbsp;&nbsp;: </B> <UL>"
On Error Resume Next
rs.MoveFirst
Do While Not rs.eof
Response.Write "<BR>" & "<A HREF='OpenPage.ASP?IndexURL=" & rs.Fields("URL").Value & "'>" & rs.Fields("Title") & "</A> - "
Response.Write rs.Fields("Description") & "<BR>"
Response.Write "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT SIZE=2>URL: " & rs.Fields("URL") & "</FONT>"
Response.Write "<HR SIZE=1 WIDTH=200 ALIGN=LEFT>"
rs.MoveNext
Loop
Response.Write "</UL>"

end if
%>


</BODY>
</HTML>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值