|
<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 = ' ' ' 如果搜索为空则返回 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> 结果 : </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 ' <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>
|