<% dim act act=request("act") if(act="search") then QueryString = Request.form( "QueryString" ) QueryWords = Split( QueryString ) strIndent = " "
' 如果搜索为空则返回 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> " For i = LBound( QueryWords ) to UBound( QueryWords ) Response.Write "<BR>" & strIndent & i & ": " & QueryWords( i ) Next